This post was written by Siyuan Chen, with guidance and support from Professor Grant McKenzie, during the summer of 2024.

I had the amazing chance to learn about homomorphic encryption (HE) this summer. HE is a cutting-edge technology that makes it possible to perform computations on encrypted data without ever having to decrypt it. Even though it seems like something from a science fiction film, this is a very real and quickly developing technology with significant ramifications for data security and privacy. My study was centered around using this technology to address a particular problem: locating the points where two geographical trajectories intersect.

Why Homomorphic Encryption?

Before I dive into what I did, let me briefly explain why homomorphic encryption is so exciting. Imagine you have sensitive data—like medical records or financial information—that you want to analyze or process. Normally, to do anything useful with this data, you’d have to decrypt it first, making it vulnerable to unauthorized access. Homomorphic encryption changes the game by allowing you to run computations directly on the encrypted data. The results are also encrypted, and only the final output needs to be decrypted, ensuring that the original data remains secure throughout the entire process.

My Project: A Real-World Application

The goal of my project was to write a simple script that uses homomorphic encryption to perform a geospatial operation—specifically, finding where two paths or trajectories intersect. This kind of operation is essential in various fields, from urban planning and transportation to environmental monitoring. However, when this data is sensitive (for example, tracking personal movements), ensuring its privacy is crucial. That’s where homomorphic encryption comes in.

Using a special type of homomorphic encryption called the CKKS scheme, I created a program that could compute the intersection points between two trajectories represented as GeoJSON files. GeoJSON is a format used for encoding various geographic data structures, and in this case, it was used to map out two different paths.

How It Works

To make this work, I used a compiler designed for CKKS, called EVA, which helps translate my code into something that can be processed by the encryption scheme. The process involved several steps:

  1. Data Preparation: I started by loading the coordinates of the two trajectories from GeoJSON files. These coordinates define the points that make up each path.
  2. Writing the Program: Next, I wrote a program using EVA that calculates the intersection points between the two paths. This program was designed to work entirely within the encrypted domain, meaning that the data was encrypted from start to finish.
  3. Encryption and Execution: I then encrypted the input data (the coordinates of the paths) using a public encryption key. Once encrypted, this data was sent to a server where the program was executed. The server performed the intersection calculations without ever seeing the actual data.
  4. Decryption and Results: Finally, the server returned the encrypted results, which I decrypted using a secret key. This allowed me to view the intersection points while ensuring that the original data remained completely secure throughout the process.

Challenges and Discoveries

One of the main challenges I faced was tuning the parameters of the encryption scheme to ensure accurate and stable results. CKKS allows you to adjust things like the scale of the numbers being encrypted, which can greatly impact the precision of the calculations. Through a lot of trial and error, I discovered that certain configurations worked better than others. For example, using a scale factor of 70 provided the most accurate and reliable results.

Another interesting discovery was how sensitive the encryption scheme is to changes in these parameters. Even small adjustments could lead to unstable results, which made the tuning process both challenging and fascinating.

Why This Matters

At a time when data privacy is more important than ever, technologies like homomorphic encryption offer a way to protect sensitive information while still allowing us to derive valuable insights from it. The work I did this summer is just one example of how this technology can be applied to real-world problems. By ensuring that data remains encrypted throughout the entire process, we can build systems that are both powerful and secure.

What’s Next?

While my project focused on a specific geospatial operation, the principles and techniques I learned can be applied to a wide range of other problems. Whether it’s in healthcare, finance, or any other field that deals with sensitive data, homomorphic encryption has the potential to revolutionize the way we process and protect information. In the future, I hope to continue exploring this exciting field, perhaps tackling even more complex challenges and contributing to the development of privacy-preserving technologies.

To sum up, this summer was a fantastic learning opportunity. I got to work with one of the most exciting new data security technologies, and I’m looking forward to where this adventure will lead me next. Homomorphic encryption is something to watch if you’re interested in data privacy or are just a tech enthusiast because it has the potential to revolutionize the secure computing industry.

Thank you for taking the time to read about my summer project!