Introduction

Hey there!

I'm Aditya Rajput, known in some circles as BURG3R5 and in others as @burgers:matrix.org.

(My favorite food is pizza; the nickname is ironic.)

This summer I'm gonna be implementing encrypted search in Matrix, a project under the Matrix.org organization for the Google Summer of Code program. I'll be mentored by Charles Wright (aka cvwright).

If you want to keep up with this project, you can join the public Matrix room #encrypted-search:matrix.org. You can also subscribe to this blog's RSS feed.

About Me

I'm a sophomore currently enrolled in a B.Tech. program at the Indian Institute of Technology at Roorkee, India. My love for computer science began when I was 14 years old and laid eyes on the Python docs on my family PC. I was fascinated by the idea of a perfect machine that worked according to a well-defined set of rules. From there, my love for programming grew exponentially as I learned about Java, C++, Flutter, Node.js, cryptography, reversing and so on.

Skills

  • Languages/Frameworks:
    • Dart: Flutter
    • Python: Django, Flask, numpy, pandas, scikit-learn
    • JavaScript/TypeScript: Node.js, Express.js, ReactJS
    • Java/Kotlin: Android Native
  • Tools: Linux-Bash scripting, Docker, Sentry, Heroku, Firebase, MongoDB, Vim.

About The Project

In this project I will implement, in particular, the keyword search scheme outlined in a Demertzis et al. paper titled “Fast Searchable Encryption with Tunable Locality”. I will achieve this by creating a Python library that exposes methods to create, update and search on encrypted indices stored in content repositories in a Matrix homeserver. As a part of the project, I will be demonstratively integrating the library into an existing Matrix client. Additionally, I will submit results of preliminary performance evaluation.

Goals

In this project I intend to:

  1. Implement the keyword search SSE scheme outlined in the aforementioned Demertzis et al. paper. 
  2. Create encrypted indices of a few public Matrix rooms. 
  3. Implement an updation procedure for the above SSE i.e. provide a way to add new messages/documents to the encrypted index. 
  4. Integrate the project into a suitable client. 
  5. Perform performance evaluation of the created library.

Deliverables

  • A Python library that exposes methods to create, update and search on encrypted indices.
  • Demonstrative integration into a suitable Matrix client. 
  • Complete documentation (comments and website) for the library and example codes. 
  • Preliminary performance analysis results. 
  • Weekly blogs on project progress. 
  • GSoC end project report.

Pre-GSoC Code

In order to understand the paper and the project idea in the best way possible, I implemented a sort of MVP of this project before writing my proposal for this project. It helped me gain much insight into the project idea and also helped me set milestones. The code is available here. Included are tests, in which both keyword and phrase search are run over 500 messages exported from the official GSoC Matrix room (#gsoc:matrix.org).

About This Blog

On this blog I'll posting weekly updates about my progress with the project. I'll also be posting about interesting technical stuff I come across during my journey, whether it may be neat tricks or ugly bugs. I hope you'll accompany me on this journey.

See you next time!


Comments

Popular Posts