This is currently active project, and we are developing an extremely efficient password-authenticated secret sharing scheme. Such schemes allow users to share secret data among several servers, so that data is decentralized and can be recovered using one single human-memorable password, but no collusion of servers up to a certain size can mount an off-line dictionary attack on the password or learn anything about the secret.
The best known protocols require around 20 exponentiation operations to be performed on user's device during retrieval phase. Presently, we have devised a new algorithm which is significantly cheaper, and we are working on its security proof in 2-server setting.
Zero Knowledge Protocols: Prof. Ragesh Jaiswal, CSE, IIT Delhi Course Project
Explored and presented existing Zero Knowledge protocols and proof systems including Graph 3-Colorability, Quadratic Residuosity, Zero-Knowledge Proofs of Identity. This project was an in-depth study of ZK proof systems. I also explored the current problems in the field of Concurrent Zero Knowledge contextually.
I would suggest the following texts to an undergraduate - Oded Goldreich's notes on ZK, Boaz Barak and Luca Trevisan's Lecture notes, and Concurrent Zero-Knowledge by Alon Rosen. Feel free to contact me if you have any questions.
Android has become the most popular operating system for mobile devices, which makes it a prominent target for malicious software. The security concept of Android is based on app isolation and access control for critical system resources. However, users can only review and accept permission requests at install time, or else they cannot install an app at all. Android neither supports permission revocation after the installation of an app, nor dynamic permission assignment.
An inline reference monitor system was developed under tutelage of Prof. Michael Backes and Prof. Matteo Maffei at Saarland University. My work was to prove soundness of the approach and thereby, I defined all inference rules necessary for complete structural operational semantics for Dalvik (Android's Virtual Machine), with a focus on security aspects. I also rigorously modelled Android's permission-based security mechanism as well as the inter-process communication.
Information Security and Privacy Leaks: Prof. Sanjiva Prasad, CSE, IIT Delhi Independent Project
I proposed and developed a security analyzer for Android applications to test for malicious behavior, that statically enumerated possible sensitive information flows to an insecure location. The idea was to extend Dorothy Denning's lattice model for secure information flow and George Necula's Proof Carrying Code techniques. The limitation of the work was excessive required user's indulgence. Our analyzer could detect all illicit flows, only if user had tagged his/ her data adhering to a dynamic lattice structure among different security classes.
Through this research, I learnt many wonderful techniques in the field of secure computing and language-based security. I would suggest a person to read the following - Denning's work on Lattice model, Hoare's axioms, Necula's Proof Carrying Code, Pnueli and Necula's Translation Validation, and Secure Program Partitioning. These are the least one should know. Feel free to contact me if you have any queries or need further assistance.
Array Interleaving Compiler Optimization: Prof. Preeti Panda, CSE, IIT Delhi Course Project
The problem was, given a program structure, to find an optimal storing strategy for the arrays accessed (if any) in the vector register so as to minimize the number of load/store instructions. The aim was to develop a back-end compiler optimization to obtain better cache and vector register access.
Our solution was to sketch an array interleaving graph, a graph in which each distinct array represented a node and edges between the nodes mentioned the possibility of interleaving those 2 arrays, the plausible advantage and disadvantage of the same, and the likely interleaving pattern. After drawing this graph, we greedily picked up array choices which had maximum net advantage, until any further interleaving would not be beneficial. We also proved maximality of our approach and implemented it as a back-end optimization with LLVM as the infrastructure.
Concurrency Bug Testing Tools: Prof. Sorav Bansal, CSE, IIT Delhi Course Project
Concurrency is pervasive in large systems. Unexpected interference among threads often results in bugs that are extremely difficult to reproduce and eliminate. I implemented tools such as CHESS and PCT to detect and reproduce concurrency bugs deterministically. The project involved writing wrappers over pthreads library to capture, control and search through all interleaving non-determinism systematically and exhaustively.
PintOS: Prof. Sorav Bansal, CSE, IIT Delhi Course Project
I implemented system calls for user programs, extended virtual memory and filesystem for the instructional operating system PintOS.
PIOS: Prof. Sorav Bansal, CSE, IIT Delhi Course Project
Added the functionality of catching traps caused by the kernel's code, implemented protected control transfer to run application mode in a less priviledged mode and a dynamic memory allocator.
Standard ML and Prolog Interpreters: Prof. Sanjiva Prasad, CSE, IIT Delhi Course Project
Built interpreters for a subset of Standard ML and Prolog languages.
Improve Alternating Direction Method of Mutlipliers: Dr. Dhruv Mahajan, MSR India Internship Project
ADMM (Alternating Direction Method of Multipliers) is an acclaimed method and well suited to distributed convex optimizations. The method was developed in 1970s and since then has been very successful in statistics, machine learning and related areas. In this work, we tried to develop a more robust and effcient protocol. I devised a convergence proof for our algorithm and proved it to be more robust with lesser communication overheads. I also implemented the algorithm over Hadoop MapReduce framework.
I can not disclose any further information about our approach. If you are interested or have any queries, then please contact me.
Automated Course Advisor: Prof. Subhashis Banerjee, CSE, IIT Delhi Course Project
Developed a chatbot based on Prof. Abelson and Prof. Sussman's design on freshmen advisor. The chatbot could interact with any Computer Science student.
Online Multiplayer Carom: Prof. Kolin Paul, CSE, IIT Delhi Course Project
Wrote a multiplayer carom game, using OpenGL, played over the network by upto 4 players, with availability of bots (with multiple difficulty levels).
Room Reservation System: Prof. Kolin Paul, CSE, IIT Delhi Course Project
Built an online room booking system which could handle multiple requests from numerous users concurrently, and could recover from a power failure or any other unstable state smoothly.
Universal Asynchronous Receiver Transmitter: Prof. Kolin Paul, CSE, IIT Delhi Course Project
Designed a hardware-software partitioning on PC and FPGA using UART protocol in VHDL to perform Matrix Multiplication and Systolic Sorting on hardware.
Processor Design and Simulation: Prof. Smruti Sarangi, CSE, IIT Delhi Course Project
Designed a subset of instructions for the MIPS-32 architecture on a simulator. The simulator used was Logisim, a java based simulator. The input instructions were given using the register file, and the state changes in the outputs were displayed as the instructions got executed one by one.
Latent Semantics Analysis: Prof. Amit Kumar, CSE, IIT Delhi Course Project
Demonstrated better noise reduction and clustering on a database consisting of popular books.