Demo Data from SIGIR 2026 / reviewers in the wild / expert
Rami Gökhan Kici
dblp:182/4711
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Cryptographic primitives and cryptanalysis › cryptographic implementation
constant-time implementation |
0.9 | 2 | 2021 | 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.6 | 2 | 2021 | 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.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Cryptographic primitives and cryptanalysis › cryptographic implementation
cryptographic software |
0.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Hardware security and side channels
side-channel attack |
0.5 | 1 | 2021 | 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.5 | 1 | 2021 | 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.5 | 1 | 2021 | Automatically eliminating speculative leaks from cryptographic code with blade · Proc. ACM Program. Lang. 2021 |
Hardware security and side channels
side-channel countermeasures |
0.4 | 1 | 2019 | IODINE: Verifying Constant-Time Execution of Hardware · USENIX Security Symposium 2019 |
Program verification › program logic › separation logic
distributed separation logic |
0.4 | 1 | 2019 | Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019 |
Program verification
distributed system verification |
0.3 | 1 | 2017 | Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017 |
Distributed systems
distributed coordination |
0.3 | 1 | 2017 | Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017 |
Parallel and multicore computing
message-passing programs |
0.3 | 1 | 2017 | Verifying distributed programs via canonical sequentialization · Proc. ACM Program. Lang. 2017 |
Systems and software security › exploitation
control-flow hijacking |
0.2 | 1 | 2016 | Protecting C++ Dynamic Dispatch Through VTable Interleaving · NDSS 2016 |
Systems and software security
memory safety |
0.2 | 1 | 2016 | Protecting C++ Dynamic Dispatch Through VTable Interleaving · NDSS 2016 |
Distributed systems
consensus |
0.1 | 1 | 2019 | Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019 |
Distributed systems › distributed database › commit protocol
two-phase commit |
0.1 | 1 | 2019 | Pretend synchrony: synchronous verification of asynchronous distributed programs · Proc. ACM Program. Lang. 2019 |
Programming languages and type systems › method dispatch
dynamic dispatch |
0.1 | 1 | 2016 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Modeling the AWS Authorization Engine
Lee A. Barnett, Loris D'Antoni, Amit Goel, Rami Gökhan Kici, Neha Rungta, Mary Southern, Chungha Sung |
FMCAD | 4 |
| 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 |
FMCAD | 5 |
| 2021 | Solver-Aided Constant-Time Hardware VerificationabstractWe 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 |
CCS | 2 |
| 2021 | Automatically eliminating speculative leaks from cryptographic code with bladeabstractWe 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 Symposium | 2 |
| 2019 | Pretend synchrony: synchronous verification of asynchronous distributed programsabstractWe 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 sequentializationabstractWe 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 |
NDSS | 2 |