diff --git a/metadata/topics.toml b/metadata/topics.toml --- a/metadata/topics.toml +++ b/metadata/topics.toml @@ -1,603 +1,615 @@ ["Computer science"] ["Computer science".classification] ams.id = "68" ams.hierarchy = [ "Computer science", ] ["Computer science"."Artificial intelligence"] ["Computer science"."Artificial intelligence".classification] acm.id = "10010147.10010178" acm.desc = "Computing methodologies~Artificial intelligence" ams.id = "68T" ams.hierarchy = [ "Computer science", "Artificial intelligence", ] ["Computer science"."Automata and formal languages"] ["Computer science"."Automata and formal languages".classification] acm.id = "10003752.10003766" acm.desc = "Theory of computation~Formal languages and automata theory" ams.id = "68Q45" ams.hierarchy = [ "Computer scienece", "Theory of computing", "Formal languages and automata", ] ["Computer science".Algorithms] ["Computer science".Algorithms.classification] acm.id = "10003752.10003809" acm.desc = "Theory of computation~Design and analysis of algorithms" ams.id = "68W" ams.hierarchy = [ "Computer science", "Algorithms in computer science", ] ["Computer science".Algorithms.Graph] ["Computer science".Algorithms.Graph.classification] acm.id = "10003752.10003809.10003635" acm.desc = "Theory of computation~Graph algorithms analysis" ams.id = "05C85" ams.hierarchy = [ "Combinatorics", "Graph theory", "Graph algorithms", ] ["Computer science".Algorithms.Distributed] ["Computer science".Algorithms.Distributed.classification] acm.id = "10003752.10003809.10010172" acm.desc = "Theory of computation~Distributed algorithms" ams.id = "68W15" ams.hierarchy = [ "Computer science", "Algorithms in computer science", "Distributed algorithms", ] ["Computer science".Algorithms.Concurrent] ["Computer science".Algorithms.Concurrent.classification] acm.id = "10003752.10003809.10011778" acm.desc = "Theory of computation~Concurrent algorithms" ams.id = "68W10" ams.hierarchy = [ "Computer science", "Algorithms in computer science", "Parallel algorithms in computer science", ] ["Computer science".Algorithms.Online] ["Computer science".Algorithms.Online.classification] acm.id = "10003752.10003809.10010047" acm.desc = "Theory of computation~Online algorithms" ams.id = "68W27" ams.hierarchy = [ "Computer science", "Algorithms in computer science", "Online algorithms; streaming algorithms", ] ["Computer science".Algorithms.Geometry] ["Computer science".Algorithms.Geometry.classification] ["Computer science".Algorithms.Approximation] ["Computer science".Algorithms.Approximation.classification] acm.id = "10003752.10003809.10003636" acm.desc = "Theory of computation~Approximation algorithms analysis" ams.id = "68W25" ams.hierarchy = [ "Computer science", "Algorithms in computer science", "Approximation algorithms", ] ["Computer science".Algorithms.Mathematical] ["Computer science".Algorithms.Mathematical.classification] ["Computer science".Algorithms.Optimization] ["Computer science".Algorithms.Optimization.classification] acm.id = "10003752.10003809.10003716" acm.desc = "Theory of computation~Mathematical optimization" ["Computer science".Algorithms."Quantum computing"] ["Computer science".Algorithms."Quantum computing".classification] ams.id = "68Q12" ams.hierarchy = [ "Computer science", "Theory of computing", "Quantum algorithms and complexity in the theory of computing", ] ["Computer science".Algorithms."Randomized"] ["Computer science".Algorithms."Randomized".classification] acm.id = "10002950.10003648.10003671" acm.desc = "Mathematics of computing~Probabilistic algorithms" ams.id = "68W20" ams.hierarchy = [ "Computer science", "Algorithms in computer science", "Randomized algorithms", ] ["Computer science".Concurrency] ["Computer science".Concurrency.classification] acm.id = "10003752.10003753.10003761" acm.desc = "Theory of computation~Concurrency" ams.id = "68Q85" ams.hierarchy = [ "Computer science", "Theory of computing", "Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.)", ] ["Computer science".Concurrency."Process calculi"] ["Computer science".Concurrency."Process calculi".classification] acm.id = "10003752.10003753.10003761.10003764" acm.desc = "Theory of computation~Process calculi" ams.id = "68Q85" ams.hierarchy = [ "Computer science", "Theory of computing", "Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.)", ] ["Computer science"."Data management systems"] ["Computer science"."Data management systems".classification] acm.id = "10002951.10002952" acm.desc = "Information systems~Data management systems" ams.id = "68P15" ams.hierarchy = [ "Computer science", "Theory of data", "Database theory", ] ["Computer science"."Data structures"] ["Computer science"."Data structures".classification] acm.id = "10003752.10003809.10010031" acm.desc = "Theory of computation~Data structures design and analysis" ams.id = "68P05" ams.hierarchy = [ "Computer science", "Theory of data", "Data structures", ] ["Computer science"."Functional programming"] ["Computer science"."Functional programming".classification] acm.id = "10011007.10011006.10011008.10011009.10011012" acm.desc = "Software and its engineering~Functional languages" ams.id = "68N18" ams.hierarchy = [ "Computer science", "Theory of software", "Functional programming and lambda calculus", ] ["Computer science".Hardware] ["Computer science".Hardware.classification] acm.id = "10010583" acm.desc = "Hardware" ["Computer science"."Machine learning"] ["Computer science"."Machine learning".classification] acm.id = "10010147.10010257" acm.desc = "Computing methodologies~Machine learning" ["Computer science".Networks] ["Computer science".Networks.classification] acm.id = "10003033" acm.desc = "Networks" ["Computer science"."Programming languages"] ["Computer science"."Programming languages".classification] acm.id = "10011007.10011006.10011008" acm.desc = "Software and its engineering~General programming languages" ams.id = "68N15" ams.hierarchy = [ "Computer science", "Theory of software", "Theory of programming languages", ] ["Computer science"."Programming languages"."Language definitions"] ["Computer science"."Programming languages"."Language definitions".classification] acm.id = "10011007.10011006.10011039" acm.desc = "Software and its engineering~Formal language definitions" ["Computer science"."Programming languages"."Lambda calculi"] ["Computer science"."Programming languages"."Lambda calculi".classification] acm.id = "10002950.10003714.10003732.10003733" acm.desc = "Mathematics of computing~Lambda calculus" ams.id = "68N18" ams.hierarchy = [ "Computer science", "Theory of software", "Functional programming and lambda calculus", ] ["Computer science"."Programming languages"."Type systems"] ["Computer science"."Programming languages"."Type systems".classification] acm.id = "10011007.10011006.10011008.10011024.10011028" acm.desc = "Software and its engineering~Data types and structures" ["Computer science"."Programming languages".Logics] ["Computer science"."Programming languages".Logics.classification] -acm.id = "10011007.10011006.10011008.10011009.10011015" -acm.desc = "Software and its engineering~Constraint and logic languages" +acm.id = "10003752.10003790.10003806" +acm.desc = "Theory of computation~Programming logic" +ams.id = "68Q60" +ams.hierarchy = [ + "Computer science", + "Theory of computing", + "Specification and verification (program logics, model checking, etc.)" +] ["Computer science"."Programming languages".Compiling] ["Computer science"."Programming languages".Compiling.classification] acm.id = "10011007.10011006.10011041" acm.desc = "Software and its engineering~Compilers" ams.id = "68N20" ams.hierarchy = [ "Computer science", "Theory of software", "Theory of compilers and interpreters", ] ["Computer science"."Programming languages"."Static analysis"] ["Computer science"."Programming languages"."Static analysis".classification] acm.id = "10011007.10010940.10010992.10010998.10011000" acm.desc = "Software and its engineering~Automated static analysis" ["Computer science"."Programming languages".Misc] ["Computer science"."Programming languages".Misc.classification] ["Computer science".Security] ["Computer science".Security.classification] acm.id = "10002978" acm.desc = "Security and privacy" ams.id = "68M25" ams.hierarchy = [ "Computer science", "Computer system organization", "Computer security", ] ["Computer science".Security.Cryptography] ["Computer science".Security.Cryptography.classification] acm.id = "10002978.10002979" acm.desc = "Security and privacy~Cryptography" +ams.id = "94A60" +ams.hierarchy = [ + "Information and communication theory, circuits", + "Communication, information", + "Cryptography", +] ["Computer science"."Semantics and reasoning"] ["Computer science"."Semantics and reasoning".classification] acm.id = "10003752.10010124" acm.desc = "Theory of computation~Semantics and reasoning" ams.id = "68Q55" ams.hierarchy = [ "Computer science", "Theory of computing", "Semantics in the theory of computing", ] ["Computer science"."System description languages"] ["Computer science"."System description languages".classification] acm.id = "10011007.10011006.10011060" acm.desc = "Software and its engineering~System description languages" [Logic] [Logic.classification] acm.id = "10003752.10003790" acm.desc = "Theory of computation~Logic" ams.id = "03" ams.hierarchy = [ "Mathematical logic and foundations", ] [Logic."Philosophical aspects"] [Logic."Philosophical aspects".classification] ams.id = "03A" ams.hierarchy = [ "Mathematical logic and foundations", "Philosophical aspects of logic and foundations", ] [Logic."General logic"] [Logic."General logic".classification] ams.id = "03B" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", ] [Logic."General logic"."Classical propositional logic"] [Logic."General logic"."Classical propositional logic".classification] ams.id = "03B05" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Classical propositional logic", ] [Logic."General logic"."Classical first-order logic"] [Logic."General logic"."Classical first-order logic".classification] ams.id = "03B10" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Classical first-order logic", ] [Logic."General logic"."Decidability of theories"] [Logic."General logic"."Decidability of theories".classification] ams.id = "03B25" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Decidability of theories and sets of sentences", ] [Logic."General logic"."Mechanization of proofs"] [Logic."General logic"."Mechanization of proofs".classification] ams.id = "03B35" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Mechanization of proofs and logical operations", ] [Logic."General logic"."Logics of knowledge and belief"] [Logic."General logic"."Logics of knowledge and belief".classification] acm.id = "10010147.10010178.10010187.10010198" acm.desc = "Computing methodologies~Reasoning about belief and knowledge" ams.id = "03B42" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Logics of knowledge and belief (including belief change)", ] [Logic."General logic"."Temporal logic"] [Logic."General logic"."Temporal logic".classification] acm.id = "10003752.10003790.10003793" acm.desc = "Theory of computation~Modal and temporal logics" ams.id = "03B44" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Temporal logic", ] [Logic."General logic"."Modal logic"] [Logic."General logic"."Modal logic".classification] acm.id = "10003752.10003790.10003793" acm.desc = "Theory of computation~Modal and temporal logics" ams.id = "03B45" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Modal logic (including the logic of norms)", ] [Logic."General logic"."Paraconsistent logics"] [Logic."General logic"."Paraconsistent logics".classification] ams.id = "03B53" ams.hierarchy = [ "Mathematical logic and foundations", "General logic", "Paraconsistent logics", ] [Logic.Computability] [Logic.Computability.classification] acm.id = "10003752.10003753.10003754" acm.desc = "Theory of computation~Computability" ams.id = "03D" ams.hierarchy = [ "Mathematical logic and foundations", "Computability and recursion theory", ] [Logic."Set theory"] [Logic."Set theory".classification] ams.id = "03E" ams.hierarchy = [ "Mathematical logic and foundations", "Set theory", ] [Logic."Proof theory"] [Logic."Proof theory".classification] acm.id = "10003752.10003790.10003792" acm.desc = "Theory of computation~Proof theory" ams.id = "03F" ams.hierarchy = [ "Mathematical logic and foundations", "Proof theory and constructive mathematics", ] [Logic.Rewriting] [Logic.Rewriting.classification] acm.id = "10003752.10003790.10003798" acm.desc = "Theory of computation~Equational logic and rewriting" [Mathematics] [Mathematics.classification] [Mathematics.Order] [Mathematics.Order.classification] ams.id = "06" ams.hierarchy = [ "Order, lattices, ordered algebraic structures", ] [Mathematics.Algebra] [Mathematics.Algebra.classification] ams.id = "08" ams.hierarchy = [ "General algebraic systems", ] [Mathematics.Analysis] [Mathematics.Analysis.classification] acm.id = "10002950.10003714" acm.desc = "Mathematics of computing~Mathematical analysis" [Mathematics."Measure and integration"] [Mathematics."Measure and integration".classification] ams.id = "28" ams.hierarchy = [ "Measure and integration", ] [Mathematics."Probability theory"] [Mathematics."Probability theory".classification] acm.id = "10002950.10003648" acm.desc = "Mathematics of computing~Probability and statistics" ams.id = "60" ams.hierarchy = [ "Probability theory and stochastic processes", ] [Mathematics."Number theory"] [Mathematics."Number theory".classification] ams.id = "11" ams.hierarchy = [ "Number theory", ] [Mathematics."Games and economics"] [Mathematics."Games and economics".classification] ams.id = "91" ams.hierarchy = [ "Game theory, economics, finance, and other social and behavioral sciences", ] [Mathematics.Geometry] [Mathematics.Geometry.classification] ams.id = "51" ams.hierarchy = [ "Geometry", ] [Mathematics.Topology] [Mathematics.Topology.classification] acm.id = "10002950.10003741.10003742" acm.desc = "Mathematics of computing~Topology" ams.id = "54" ams.hierarchy = [ "General topology", ] [Mathematics."Graph theory"] [Mathematics."Graph theory".classification] acm.id = "10002950.10003624.10003633" acm.desc = "Mathematics of computing~Graph theory" ams.id = "05C" ams.hierarchy = [ "Combinatorics", "Graph theory", ] [Mathematics.Combinatorics] [Mathematics.Combinatorics.classification] acm.id = "10002950.10003624.10003625" acm.desc = "Mathematics of computing~Combinatorics" ams.id = "05" ams.hierarchy = [ "Combinatorics", ] [Mathematics."Category theory"] [Mathematics."Category theory".classification] ams.id = "18" ams.hierarchy = [ "Category theory; homological algebra", ] [Mathematics.Physics] [Mathematics.Physics.classification] ams.id = "00A79" ams.hierarchy = [ "General and overarching topics; collections", "General applied mathematics", "Physics", ] [Mathematics.Physics."Quantum information"] [Mathematics.Physics."Quantum information".classification] acm.id = "10003752.10003753.10003758.10010626" acm.desc = "Theory of computation~Quantum information theory" ams.id = "81P45" ams.hierarchy = [ "Quantum theory", "Foundations, quantum information and its processing, quantum axioms, and philosophy", "Quantum information, communication, networks (quantum-theoretic aspects)", ] [Mathematics.Misc] [Mathematics.Misc.classification] [Tools] [Tools.classification] diff --git a/web/entries/CHERI-C_Memory_Model.html b/web/entries/CHERI-C_Memory_Model.html --- a/web/entries/CHERI-C_Memory_Model.html +++ b/web/entries/CHERI-C_Memory_Model.html @@ -1,164 +1,164 @@ A Formal CHERI-C Memory Model - Archive of Formal Proofs

A Formal CHERI-C Memory Model

Seung Hoon Park 🌐

November 25, 2022

Abstract

In this work, we present a formal memory model that provides a memory semantics for CHERI-C programs with uncompressed capabilities in a 'purecap' environment. We present a CHERI-C memory model theory with properties suitable for verification and potentially other types of analyses. Our theory generates an OCaml executable instance of the memory model, which is then used to instantiate the parametric Gillian program analysis framework, enabling concrete execution of CHERI-C programs. The tool can run a CHERI-C test suite, demonstrating the correctness of our tool, and catch a good class of safety violations that the CHERI hardware might miss.

License

BSD License

Topics

Related publications

  • - Park, S. H., Pai, R., & Melham, T. (2022). A Formal CHERI-C Semantics for Verification (Version 1). arXiv. https://doi.org/10.48550/ARXIV.2211.07511 + Park, S. H., Pai, R., & Melham, T. (2022). A Formal CHERI-C Semantics for Verification. ArXiv. https://doi.org/10.48550/ARXIV.2211.07511

Session CHERI-C_Memory_Model

\ No newline at end of file diff --git a/web/entries/CommCSL.html b/web/entries/CommCSL.html --- a/web/entries/CommCSL.html +++ b/web/entries/CommCSL.html @@ -1,171 +1,171 @@ Formalization of CommCSL: A Relational Concurrent Separation Logic for Proving Information Flow Security in Concurrent Programs - Archive of Formal Proofs

Formalization of CommCSL: A Relational Concurrent Separation Logic for Proving Information Flow Security in Concurrent Programs

Thibault Dardinier 📧

March 15, 2023

Abstract

Information flow security ensures that the secret data manipulated by a program does not influence its observable output. Proving information flow security is especially challenging for concurrent programs, where operations on secret data may influence the execution time of a thread and, thereby, the interleaving between threads. Such internal timing channels may affect the observable outcome of a program even if an attacker does not observe execution times. Existing verification techniques for information flow security in concurrent programs attempt to prove that secret data does not influence the relative timing of threads. However, these techniques are often restrictive (for instance because they disallow branching on secret data) and make strong assumptions about the execution platform (ignoring caching, processor instructions with data-dependent execution time, and other common features that affect execution time).

In this entry, we formalize and prove the soundness of CommCSL, a novel relational concurrent separation logic for proving secure information flow in concurrent programs that lifts these restrictions and does not make any assumptions about timing behavior. The key idea is to prove that all mutating operations performed on shared data commute, such that different thread interleavings do not influence its final value. Crucially, commutativity is required only for an abstraction of the shared data that contains the information that will be leaked to a public output. Abstract commutativity is satisfied by many more operations than standard commutativity, which makes our technique widely applicable.

License

BSD License

Topics

Related publications

  • - Eilers, M., Dardinier, T., & Müller, P. (2022). CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity (Version 1). arXiv. https://doi.org/10.48550/ARXIV.2211.08459 + Eilers, M., Dardinier, T., & Müller, P. (2022). CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity (Version 2). arXiv. https://doi.org/10.48550/ARXIV.2211.08459

Session CommCSL

\ No newline at end of file diff --git a/web/topics/computer-science/programming-languages/logics/index.html b/web/topics/computer-science/programming-languages/logics/index.html --- a/web/topics/computer-science/programming-languages/logics/index.html +++ b/web/topics/computer-science/programming-languages/logics/index.html @@ -1,353 +1,353 @@ Computer science/Programming languages/Logics - Archive of Formal Proofs

Computer Science/Programming Languages/Logics

-

Subject Classification

ACM: Software and its engineering~Constraint and logic languages

2023

+

Subject Classification

ACM: Theory of computation~Programming logic

AMS: Computer science / Theory of computing / Specification and verification (program logics, model checking, etc.)

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2008

2006

\ No newline at end of file diff --git a/web/topics/computer-science/security/cryptography/index.html b/web/topics/computer-science/security/cryptography/index.html --- a/web/topics/computer-science/security/cryptography/index.html +++ b/web/topics/computer-science/security/cryptography/index.html @@ -1,151 +1,151 @@ Computer science/Security/Cryptography - Archive of Formal Proofs

Computer Science/Security/Cryptography

-

Subject Classification

ACM: Security and privacy~Cryptography

2023

+

Subject Classification

ACM: Security and privacy~Cryptography

AMS: Information and communication theory, circuits / Communication, information / Cryptography

2023

2021

2019

2018

2017

2005

\ No newline at end of file