Aseem Rastogi

ORCID: 0000-0003-3283-8011
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Security and Verification in Computing
  • Logic, programming, and type systems
  • Advanced Malware Detection Techniques
  • Cryptography and Data Security
  • Formal Methods in Verification
  • Distributed systems and fault tolerance
  • Adversarial Robustness in Machine Learning
  • Software Engineering Research
  • Network Security and Intrusion Detection
  • Software System Performance and Reliability
  • Parallel Computing and Optimization Techniques
  • Software Testing and Debugging Techniques
  • Cloud Computing and Resource Management
  • Cloud Data Security Solutions
  • Advanced Neural Network Applications
  • Web Application Security Vulnerabilities
  • Complexity and Algorithms in Graphs
  • Privacy-Preserving Technologies in Data
  • Digital Rights Management and Security
  • Safety Systems Engineering in Autonomy
  • Real-Time Systems Scheduling
  • Blockchain Technology Applications and Security
  • Access Control and Trust
  • Stochastic Gradient Optimization Techniques
  • Cryptography and Residue Arithmetic

Microsoft Research (India)
2016-2025

Microsoft (United States)
2017-2023

Microsoft Research (United Kingdom)
2019-2020

University of Maryland, College Park
2012-2015

Stony Brook University
2012

Ethereum is a framework for cryptocurrencies which uses blockchain technology to provide an open global computing platform, called the Virtual Machine (EVM). EVM executes bytecode on simple stack machine. Programmers do not usually write code; instead, they can program in JavaScript-like language, Solidity, that compiles bytecode. Since main purpose of execute smart contracts manage and transfer digital assets (called Ether), security paramount importance. However, writing secure be...

10.1145/2993600.2993611 preprint EN 2016-10-24

We present CrypTFlow, a first of its kind system that converts TensorFlow inference code into Secure Multi-party Computation (MPC) protocols at the push button. To do this, we build three components. Our component, Athos, is an end-to-end compiler from to variety semihonest MPC protocols. The second Porthos, improved semi-honest 3-party protocol provides significant speedups for like applications. Finally, provide malicious secure protocols, our third Aramis, novel technique uses hardware...

10.1109/sp40000.2020.00092 article EN 2022 IEEE Symposium on Security and Privacy (SP) 2020-05-01

In a Secure Multiparty Computation (SMC), mutually distrusting parties use cryptographic techniques to cooperatively compute over their private data, in the process each party learns only explicitly revealed outputs. this paper, we present Wysteria, high-level programming language for writing SMCs. As with past languages, like Fairplay, Wysteria compiles secure computations circuits that are executed by an underlying engine. Unlike work, provides support mixed-mode programs, which combine...

10.1109/sp.2014.48 article EN IEEE Symposium on Security and Privacy 2014-05-01

We present Low*, a language for low-level programming and verification, its application to high-assurance optimized cryptographic libraries. Low* is shallow embedding of small, sequential, well-behaved subset C in F*, dependently- typed variant ML aimed at program verification. Departing from ML, does not involve any garbage collection or implicit heap allocation; instead, it has structured memory model à la CompCert, provides the control required writing efficient security-critical code. By...

10.1145/3110261 article EN Proceedings of the ACM on Programming Languages 2017-08-29

We present EzPC, a secure two-party computation (2PC) framework that generates efficient 2PC protocols from high-level, easy-to-write programs. EzPC provides formal correctness and security guarantees while maintaining performance scalability. Previous language frameworks, such as CBMC-GC, ObliVM, SMCL, Wysteria, generate use either arithmetic or boolean circuits exclusively. Our compiler is the first to combine both for better performance. empirically demonstrate of generated by comparable...

10.1109/eurosp.2019.00043 article EN 2019-06-01

JavaScript's flexible semantics makes writing correct code hard and secure extremely difficult. To address the former problem, various forms of gradual typing have been proposed, such as Closure TypeScript. However, supporting all common programming idioms is not easy; for example, TypeScript deliberately gives up type soundness convenience. In this paper, we propose a system implementation techniques that provide important safety security guarantees.

10.1145/2535838.2535889 preprint EN 2014-01-08

Data replication is crucial for enabling fault tolerance and uniform low latency in modern decentralized applications. Replicated Types (RDTs) have emerged as a principled approach developing replicated implementations of basic data structures such counter, flag, set, map, etc. While the correctness RDTs generally specified using notion strong eventual consistency--which guarantees that replicas received same set updates would converge to state--a more expressive specification which relates...

10.1145/3720452 article EN Proceedings of the ACM on Programming Languages 2025-04-09

Gradual typing lets programmers evolve their dynamically typed programs by gradually adding explicit type annotations, which confer benefits like improved performance and fewer run-time failures. However, we argue that such evolution often requires a giant leap, inference can offer crucial missing step. If omitted annotations are interpreted as unknown types, rather than the dynamic type, then static types be inferred, thereby removing unnecessary assumptions of type. The remaining may...

10.1145/2103621.2103714 article EN ACM SIGPLAN Notices 2012-01-18

Dijkstra monads enable a dependent type theory to be enhanced with support for specifying and verifying effectful code via weakest preconditions. Together their closely related counterparts, Hoare monads, they provide the basis on which verification tools like F*, Type Theory (HTT), Ynot are built. We show that can derived "for free" by applying continuation-passing style (CPS) translation standard monadic definitions of underlying computational effects. Automatically deriving in this way...

10.1145/3009837.3009878 preprint EN 2016-12-22

We present CrypTFlow2, a cryptographic framework for secure inference over realistic Deep Neural Networks (DNNs) using 2-party computation. CrypTFlow2 protocols are both correct -- i.e., their outputs bitwise equivalent to the cleartext execution and efficient they outperform state-of-the-art in latency scale. At core of we have new 2PC comparison division, designed carefully balance round communication complexity tasks. Using first ImageNet-scale DNNs like ResNet50 DenseNet121. These at...

10.1145/3372297.3417274 article EN Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security 2020-10-30

High-performance cryptographic libraries often mix code written in a high-level language with assembly. To support formally verifying the correctness and security of such hybrid programs, this paper presents an embedding subset x64 assembly F* that allows efficient verification both its interoperation C generated from F*. The key idea is to use computational power dependent type system's checker run verified verification-condition generator during checking. This customize condition sent by...

10.1145/3290376 article EN Proceedings of the ACM on Programming Languages 2019-01-02

Loop invariants are fundamental to reasoning about programs with loops. They establish properties a given loop's behavior. When they additionally inductive, become useful for the task of formal verification that seeks strong mathematical guarantees program's runtime The inductiveness ensures can be checked locally without consulting entire program, thus indispensable artifacts in proof correctness. Finding inductive loop is an undecidable problem, and despite long history research towards...

10.48550/arxiv.2311.07948 preprint EN cc-by arXiv (Cornell University) 2023-01-01

Much recent research has been devoted to modeling effects within type theory. Building on this work, we observe that effectful theories can provide a foundation which build semantics for more complex programming constructs and program logics, extending the reasoning principles apply host theory itself. Concretely, our main contribution is concurrent separation logic (CSL) F ⋆ proof assistant in manner enables dependently typed, programs make use of concurrency be specified verified using...

10.1145/3409003 article EN Proceedings of the ACM on Programming Languages 2020-08-02

Relational properties describe multiple runs of one or more programs. They characterize many useful notions security, program refinement, and equivalence for programs with diverse computational effects, they have received much attention in the recent literature. Rather than developing separate tools special classes effects relational properties, we advocate using a general purpose proof assistant as unifying framework verification effectful The essence our approach is to model computations...

10.1145/3167090 preprint EN 2018-01-08

With an eye toward performance, interoperability, or legacy concerns, low-level system software often must parse binary encoded data formats. Few tools are available for this task, especially since the formats involve a mixture of arithmetic and dependence, beyond what can be handled by typical parser generators. As such, parsers written hand in languages like C, with inevitable errors leading to security vulnerabilities.

10.1145/3519939.3523708 article EN 2022-06-02

We present a compiler-based scheme to protect the confidentiality of sensitive data in low-level applications (e.g. those written C) presence an active adversary. In our scheme, programmer marks by lightweight annotations on top-level definitions source code. The compiler then uses combination static dataflow analysis, runtime instrumentation, and novel taint-aware form control-flow integrity prevent leaks even attacks. To reduce overheads, memory layout.

10.1145/3302424.3303952 article EN 2019-03-22

Steel is a language for developing and proving concurrent programs embedded in F ⋆ , dependently typed programming proof assistant. Based on SteelCore, separation logic (CSL) formalized our work focuses exposing the rules of form that enables proofs to be effectively co-developed. Our main contributions include new formulation Hoare quintuples involving both first-order logic, enabling efficient verification condition (VC) generation discharge using combination tactics SMT solving. We relate...

10.1145/3473590 article EN Proceedings of the ACM on Programming Languages 2021-08-19

We present FastVer, a high-performance key-value store with strong data integrity guarantees. FastVer is built as an extension of FASTER, open-source, store. It offers the same API FASTER plus additional verify() method that detects if unauthorized attacker tampered database and checks whether results all read operations are consistent historical updates. based on novel approach combines advantages Merkle trees deferred memory verification. show this achieves one to two orders magnitudes...

10.1145/3448016.3457312 article EN Proceedings of the 2022 International Conference on Management of Data 2021-06-09

We provide a way to ease the verification of programs whose state evolves monotonically. The main idea is that property witnessed in prior can be soundly recalled current state, provided (1) according given preorder, and (2) preserved by this preorder. In many scenarios, such monotonic reasoning yields concise modular proofs, saving need for explicit program invariants. distill our approach into monotonic-state monad , general yet compact interface Hoare-style about dependently typed...

10.1145/3158153 article EN Proceedings of the ACM on Programming Languages 2017-12-27

Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, forgo soundness deal with issues of scale, code reuse, popular programming patterns. We show how address these in practice while retaining soundness. design implement a new type system, prototyped expediency 'Safe' compilation mode TypeScript. Our compiler achieves by enforcing stricter static checks embedding residual runtime compiled code. It emits plain JavaScript that runs on stock virtual...

10.1145/2775051.2676971 article EN ACM SIGPLAN Notices 2015-01-14

The Rust programming language, with its safety guarantees, has established itself as a viable choice for low-level systems language over the traditional, unsafe alternatives like C/C++. These guarantees come from strong ownership-based type system, well primitive support features closures, pattern matching, etc., that make code more concise and amenable to reasoning. unique also pose steep learning curve programmers. This paper presents tool called RustAssistant leverages emergent...

10.48550/arxiv.2308.05177 preprint EN other-oa arXiv (Cornell University) 2023-01-01

JavaScript's flexible semantics makes writing correct code hard and secure extremely difficult. To address the former problem, various forms of gradual typing have been proposed, such as Closure TypeScript. However, supporting all common programming idioms is not easy; for example, TypeScript deliberately gives up type soundness convenience. In this paper, we propose a system implementation techniques that provide important safety security guarantees. We present TS# , source-to-source...

10.1145/2578855.2535889 article EN ACM SIGPLAN Notices 2014-01-08
Coming Soon ...