Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Rami Gökhan Kici

dblp:182/4711 · DBLP profile ↗
← Back
8ranked-venue papers
0as first author
4since 2021 · last 2025
0000-0003-1250-6001ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 3 since 2021Security and privacy · 3 · 1 since 2021Theory of computation · 2 · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
4 papers
Hardware security and side channels · 60% Cryptographic primitives and cryptanalysis · 29% Systems and software security · 10%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 50% Electronic design automation · 34% Parallel and multicore computing · 16%
Software engineering, system software, and programming languages
3 papers
Program verification · 90% Programming languages and type systems · 10%

Topics — the 17 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Cryptographic primitives and cryptanalysis › cryptographic implementation
constant-time implementation
0.922021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
IODINE: Verifying Constant-Time Execution of Hardware · USENIX Security Symposium 2019
Electronic design automation › hardware verification and test
hardware verification
0.622021
Solver-Aided Constant-Time Hardware Verification · CCS 2021
IODINE: Verifying Constant-Time Execution of Hardware · USENIX Security Symposium 2019
Hardware security and side channels
cache side channel
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Cryptographic primitives and cryptanalysis › cryptographic implementation
cryptographic software
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels
side-channel attack
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels › microarchitectural attacks › transient execution attack
speculative execution attack
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels › microarchitectural attacks
speculative execution leakage
0.512021
Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021
Hardware security and side channels
side-channel countermeasures
0.412019
IODINE: Verifying Constant-Time Execution of Hardware · USENIX Security Symposium 2019
Program verification › program logic › separation logic
distributed separation logic
0.412019
Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019
Program verification
distributed system verification
0.312017
Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017
Distributed systems
distributed coordination
0.312017
Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017
Parallel and multicore computing
message-passing programs
0.312017
Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017
Systems and software security › exploitation
control-flow hijacking
0.212016
Protecting C++ Dynamic Dispatch Through VTable Interleaving · NDSS 2016
Systems and software security
memory safety
0.212016
Protecting C++ Dynamic Dispatch Through VTable Interleaving · NDSS 2016
Distributed systems
consensus
0.112019
Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019
Distributed systems › distributed database › commit protocol
two-phase commit
0.112019
Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019
Programming languages and type systems › method dispatch
dynamic dispatch
0.112016
Protecting C++ Dynamic Dispatch Through VTable Interleaving · NDSS 2016

Methods — techniques the papers use, named apart from their topics

solver-aided verification · 1.0module summaries · 1.0assumption synthesis · 1.0synchronization computation · 0.8formal verification · 0.8floyd-hoare logic · 0.8SMT · 0.8sequentialization · 0.6model checking · 0.6webassembly compilation · 0.5static type system · 0.5information flow control · 0.5
YearPublicationVenuePosition
2025 Modeling the AWS Authorization Engine
Lee A. Barnett, Loris D'Antoni, Amit Goel, Rami Gökhan Kici, Neha Rungta, Mary Southern, Chungha Sung
FMCAD4
2024 Projective Model Counting for IP Addresses in Access Control Policies
Loris D'Antoni, Andrew Gacek, Amit Goel, Dejan Jovanovic, Rami Gökhan Kici, Daniel Peebles, Neha Rungta, Yasmine Sharoda, Chungha Sung
FMCAD5
2021 Solver-Aided Constant-Time Hardware Verification
abstract
We present Xenon, a solver-aided, interactive method for formally verifying that Verilog hardware executes in constant-time. Xenon scales to realistic hardware designs by drastically reducing the effort needed to localize the root cause of verification failures via a new notion of constant-time counterexamples, which Xenon uses to synthesize a minimal set of secrecy assumptions in an interactive verification loop. To reduce verification time Xenon exploits modularity in Verilog code via module summaries, thereby avoiding duplicate work across multiple module instantiations. We show how Xenon's assumption synthesis and summaries enable us to verify different kinds of circuits, including a highly modular AES- 256 implementation where modularity cuts verification from six hours to under three seconds, and the ScarVside-channel hardened RISC-V micro-controller whose size exceeds previously verified designs by an order of magnitude. In a small study, we also find that Xenon helps non-expert users complete verification tasks correctly and faster than previous state-of-art tools.
Klaus von Gleissenthall, Rami Gökhan Kici, Deian Stefan, Ranjit Jhala
CCS2
2021 Automatically eliminating speculative leaks from cryptographic code with blade
abstract
We introduce Blade, a new approach to automatically and efficiently eliminate speculative leaks from cryptographic code. Blade is built on the insight that to stop leaks via speculative execution, it suffices to cut the dataflow from expressions that speculatively introduce secrets ( sources ) to those that leak them through the cache ( sinks ), rather than prohibit speculation altogether. We formalize this insight in a static type system that (1) types each expression as either transient , i.e., possibly containing speculative secrets or as being stable , and (2) prohibits speculative leaks by requiring that all sink expressions are stable. Blade relies on a new abstract primitive, protect , to halt speculation at fine granularity. We formalize and implement protect using existing architectural mechanisms, and show how Blade’s type system can automatically synthesize a minimal number of protect s to provably eliminate speculative leaks. We implement Blade in the Cranelift WebAssembly compiler and evaluate our approach by repairing several verified, yet vulnerable WebAssembly implementations of cryptographic primitives. We find that Blade can fix existing programs that leak via speculation automatically , without user intervention, and efficiently even when using fences to implement protect .
Marco Vassena, Craig Disselkoen, Klaus von Gleissenthall, Sunjay Cauligi, Rami Gökhan Kici, Ranjit Jhala, Dean M. Tullsen, Deian Stefan
Proc. ACM Program. Lang.5
2019 IODINE: Verifying Constant-Time Execution of Hardware
Klaus von Gleissenthall, Rami Gökhan Kici, Deian Stefan, Ranjit Jhala
USENIX Security Symposium2
2019 Pretend synchrony: synchronous verification of asynchronous distributed programs
abstract
We present pretend synchrony , a new approach to verifying distributed systems, based on the observation that while distributed programs must execute asynchronously, we can often soundly treat them as if they were synchronous when verifying their correctness. To do so, we compute a synchronization , a semantically equivalent program where all sends, receives, and message buffers, have been replaced by simple assignments, yielding a program that can be verified using Floyd-Hoare style Verification Conditions and SMT. We implement our approach as a framework for writing verified distributed programs in Go and evaluate it with four challenging case studies— the classic two-phase commit protocol, the Raft leader election protocol, single-decree Paxos protocol, and a Multi-Paxos based distributed key-value store. We find that pretend synchrony allows us to develop performant systems while making verification of functional correctness simpler by reducing manually specified invariants by a factor of 6, and faster , by reducing checking time by three orders of magnitude.
Klaus von Gleissenthall, Rami Gökhan Kici, Alexander Bakst, Deian Stefan, Ranjit Jhala
Proc. ACM Program. Lang.2
2017 Verifying distributed programs via canonical sequentialization
abstract
We introduce canonical sequentialization, a new approach to verifying unbounded, asynchronous, message-passing programs at compile-time. Our approach builds upon the following observation: due the combinatorial explosion in complexity, programmers do not reason about their systems by case-splitting over all the possible execution orders. Instead, correct programs tend to be well-structured so that the programmer can reason about a small number of representative executions, which we call the program’s canonical sequentialization. We have implemented our approach in a tool called Brisk that synthesizes canonical sequentializations for programs written in Haskell, and evaluated it on a wide variety of distributed systems including benchmarks from the literature and implementations of MapReduce, two-phase commit, and a version of the Disco distributed file-system. We show that unlike model checking, which gets prohibitively slow with just 10 processes Brisk verifies the unbounded versions of the benchmarks in tens of milliseconds, yielding the first concurrency verification tool that is fast enough to be integrated into a design-implement-check cycle.
Alexander Bakst, Klaus von Gleissenthall, Rami Gökhan Kici, Ranjit Jhala
Proc. ACM Program. Lang.3
2016 Protecting C++ Dynamic Dispatch Through VTable Interleaving
Dimitar Bounov, Rami Gökhan Kici, Sorin Lerner
NDSS2