-
Notifications
You must be signed in to change notification settings - Fork 6
Abstracts.2019.IFC
by Carlos Tomé Cortiñas
In this talk I will present the paper by Alex Kavvos: Modalities, cohesion and information flow. This paper develops a categorical model for information flow control and uses it to show classical non-interference properties of several calculi. In this presentation I will cover sections 1 to 4 (Introduction, Classified Sets, Cohesion, Non-Interference 1: Monads and Comonads) and (possibly) more.
Let ℒ be a set whose elements are called security levels to be understood as security clearance. Note that ℒ need not be a lattice, not even ordered.
-
A classified set 𝒮 over ℒ is a set S together with a family (Rℓ)ℓ ∈ ℒ of reflexive relations Rℓ for each security level ℓ ∈ ℒ (Definition 1)
Note that the relations Rℓ need not be equivalence relations.
The relations Rℓ are meant to model indistinguishability for observers at security level ℓ. It is intuitive that elements are indistinguishable to themselves, which corresponds to the reflexivity condition.
-
A morphism of classified sets f : 𝒮 → 𝒮' is a function f : S → S' such that it preserves or respects the relations Rℓ for each ℓ ∈ ℒ: If x Rℓ y, then f(x) R'ℓ f(y) for all x, y ∈ S (Definition 2)
In other words, a function f : S → S' is a morphism of the classified sets 𝒮 and 𝒮' if and only if whenever f(x) and f(y) for some x,y ∈ S are distinguishable according to 𝒮' then x and y were distinguishable according to 𝒮.
These constitute a bicartesian closed category CSet (over ℒ): It has terminal objects, initial objects, binary products, binary coproducts, equalisers, coequalisers, and exponentials. (Propositions 1–7)
- U denotes the forgetful functor CSet → Set, 𝒮 ↦ S.
U(𝒮) has forgotten about the classification, only the underlying set S remains. There are a few ways 𝔹public, 𝔹secret,… : CSet to classify the set 𝔹 = N2 = { 0, 1 } of Booleans and all of them get mapped to 𝔹 : Set by U.
The mapping from morphisms of classified sets 𝒮 → 𝒮' : CSet to functions U(𝒮) → U(𝒮') : Set, which can be seen as an inclusion of the subset
HomCSet(𝒮,𝒮') = { f : U(𝒮) → U(𝒮') | f respects the relations Rℓ for each ℓ ∈ ℒ } ⊆ { f : U(𝒮) → U(𝒮') } = HomSet(U(𝒮),U(𝒮')),
is usually not surjective, that is usually the subset is proper, because for non-trivial classifications of sets with more than one element there are functions that do not respect it.
Consider, for instance, the security levels ℒ = { user
, root
},
then we might specify that the value of a "public" Boolean x ∈
𝔹public can be distinguished by observers with either
security clearance but the value of a "secret" Boolean x ∈
𝔹secret can be distinguished only by observers with the
root
security clearance by defining the following two
indistinguishability relations on the set of Booleans:
-
Rpublic
user
= { (0,0), (1,1) } and Rpublicroot
= { (0,0), (1,1) } -
Rsecret
user
= { (0,0), (0,1), (1,0), (1,1) } and Rsecretroot
= { (0,0), (1,1) }
Then, an observer with the user
security clearance cannot
distinguish which of the two possible values 0 and 1 a "secret"
Boolean has in the sense that any morphism of classified sets from
𝔹secret to say 𝔹public must be constant, in
particular there is no morphism of classified sets isFalse? :
𝔹secret → 𝔹public because the function
isFalse? = λx. if x = 0 then 1 else 0
does not preserve the relation Rsecretuser
.
- Δ denotes the discrete functor Set → CSet, S ↦ (S,(Rℓ)ℓ ∈ ℒ), where each Rℓ = { (s,s) | s ∈ S } is the diagonal or equality or discrete relation on S.
Δ(S) is the finest classification of the set S in the sense that Δ is left adjoint to U: There is a natural bijection between functions S → U𝒯 and morphisms of classified sets ΔS → 𝒯. (Proposition 8)
- ∇ denotes the codiscrete functor Set → CSet, S ↦ (S,(Rℓ)ℓ ∈ ℒ), where each Rℓ = { (s,t) | s,t ∈ S } is the complete or codiscrete relation on S.
∇(S) is the most opaque classification of the set S in the sense that ∇ is right adjoint to U: There is a natural bijection between functions U𝒮 → T and morphisms of classified sets 𝒮 → ∇T. (Proposition 9)
Neither Δ nor ∇ touches the set of elements, they are both right inverses of U: U ∘ Δ = idSet = U ∘ ∇. In particular, they are both faithful, and even full because the subsets
HomCSet(Δ(S),Δ(S')) ⊆ HomSet(U(Δ(S)),U(Δ(S'))) = HomSet(S,S') ⊆ HomCSet(Δ(S),Δ(S'))
HomCSet(∇(S),∇(S')) ⊆ HomSet(U(∇(S)),U(∇(S'))) = HomSet(S,S') ⊆ HomCSet(∇(S),∇(S'))
are the whole.
- C denotes the connected components functor CSet → Set, (S,(Rℓ)ℓ ∈ ℒ) ↦ S/R*, where R = { (s,t) | s Rℓ for some ℓ ∈ ℒ }, R* the least equivalence relation containing R or the reflexive, symmetric and transitive closure of R, and S/R* the quotient or the set of equivalence classes of S with respect to R*.
If we think of morphisms into classified sets of the form Δ(T) for some set T as collapsing indistinguishable elements, then C(𝒮) is the least collapse of the classified set 𝒮 in the sense that C is left adjoint to Δ: There is a natural bijection between functions C𝒮 → T and morphisms of classified sets 𝒮 → ΔT. (Proposition 10)
The functors and adjunctions C ⊣ Δ, Δ ⊣ U, U ⊣ ∇ : CSet → Set can be generalised to the situation CSetℒ ∪ ℒ' → CSetℒ'. Note that Set is a degenerate category of classified sets in the sense that Set and CSet∅ are trivially isomorphic categories. (Propositions 14–16)
CSet is an extensive category: The coproduct functor CSet/𝒜 × CSet/ℬ → CSet/(𝒜 + ℬ), (f,g) ↦ f + g is an equivalence of categories. (Proposition ?)
The situation is summarised on slides 37 and 54 of a presentation of the paper by Kavvos.
- G. A. Kavvos. 2019. "Modalities, Cohesion, and Information Flow." arXiv preprint, MIT (Applied) Categories Seminar slides.
- Martín Abadi, Anindya Banerjee, Nevin Heintze, and Jon G. Riecke. 1999. "A Core Calculus of Dependency."
- Eugenio Moggi. 1991. "Notions of computation and monads."