~/talk

FaCT: A New Language for Constant-Time Programming

Talkat Strange Loop 2018 · 2018-09-26..09-28· [security]
slides:none on file

FaCT is a domain specific language that compiles high-level code into constant-time assembly and embeds into C Python and Haskell toolchains. It rejects secret-indexing and recursion, transforms branches into branch-free CT selects, and uses z3 and CT-vera to prove post‑transformation memory safety and constant time. Ports of OpenSSL libsodium and mbedtls show performance near C and sometimes faster (libsodium vector ops). A user study finds programmers understand and write FaCT code more reliably than hand‑rolled constant‑time C. Source lives on GitHub.

AI-written summary · about

  1. 0:00Intro
  2. 0:24Timing side channels
  3. 1:38Cryptographic padding
  4. 2:10Constant-time coding example
  5. 2:45Padding removal: 1st try
  6. 8:21Writing constant-time code is hard
  7. 8:46Error-prone in practice
  8. 11:08What does Fact look like?
  9. 12:17Labels ensure no leakage
  10. 14:16Automatically transform code
  11. 17:10Transformations are tricky
  12. 18:06Verifying constant-time code
  13. 19:06Interoperate with external code
  14. 20:28Performance numbers
  15. 22:15User study results
  16. 23:52Future directions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.