top of page

Projects

This page contains descriptions of 5 interesting projects I have built over the last few years. Projects contain a link to my GitHub repository. The repos contain source code, full written reports of experimental results, and instructions on how to run all the code. [GitHub]

​Towards More Efficient and Practical Oblivious Computation

2022

This project uses novel techniques to improve four state-of-the-art oblivious RAM (ORAM) constructions. Improvements include restructuring key architecture elements for multithreading. ORAMs improved include: [TreeORAM], [PathORAM], [RingORAM], and [CircuitORAM].

​

[GitHub Repository]

Tree ORAM
Lock image
Lock image
Lock image
Lock image
Lock image
Lock image
Lock image
Lock image
Lock image

Oblivious Computing FAQS

1. What is ORAM (Oblivious RAM)?

​

ORAM algorithms hide memory access patterns from the operating system when programs are executed and data is accessed.

​

2. What is an ODS (Oblivious Data Structure)?

​

ODSs are data structures that hide the operands, operants, and memory access patterns from the operating system when programs are executed and data is accessed.

​

3. Why is oblivious computing important?

​

Researchers are constantly finding new ways to attack and infiltrate computer systems. Recently, researchers reported they could accurately infer ~80% of the search queries over an encrypted email repository by observing memory access patterns and knowing a small amount of metadata. Encrypting sensitive data is not enough to protect it. We must also hide memory access patterns using oblivious computing constructions. 

​

4. Why now?

​

The field of oblivious computing is only 35 years old (started in the late 1980s). The first efficient ORAM construction (TreeORAM) was created in 2011. Since this breakthrough, various papers have innovated new variations of tree-based ORAMs optimized for different workloads.

Cryptographically Secure Messaging Interface

2021

Built a secure messaging app using standard cryptographic tools. Messages are hashed, digitally signed, and encrypted using SHA3 512, the NIST P-521 Elliptic Curve, and Simon Block Cipher. Message payloads include future key material (Key Racheting). Messages are stored in an AWS S3 bucket.

​

[GitHub Repository]

Secure Messaging Architecture

Building Chord

2021

Implemented a state-of-the-art computer network topography in C++. Chord is a highly scaleable peer-to-peer distributed hash table that uses consistent hashing for improved performance. Created by researchers at MIT.

 

[GitHub Repository]

Chord Example

Analysis of Twitter's Trending Topics

2020

Data analytics project on the Twitter Trending dataset. Results show that the platform prioritizes pop culture over critical news for trending topics. Built in Python using Google Facets data visualization library.

 

[GitHub Repository]

Twitter Data Collection

Satellite Image Segmentation

2020

This project dives into the techniques used to classify and segment satellite images at great levels of detail. The research was used in a larger project to build procedurally generated virtual road infrastructure for testing autonomous vehicle algorithms.

 

Techniques covered include: classification via color distribution of pixels, Canny Edge Detection optimized via Otsu's Method and a zero parameter method, and K Means Clustering optimized via the Elbow Method and a Silhouette Score.

​

[Github Repository]

Image Segmentation
bottom of page