Jump to content

Computer Scientists at Columbia University Invent Technique to Encrypt Photos Stored in the Cloud

InsertPi

Summary

Computer scientists at Columbia University have engineered a technique to encrypt user photos stored on the cloud in places like Google Photos or iCloud (especially relevant right now). The technique generates three encrypted images-- one containing data about the red, one with data about the green, and one with data about the blue. Viewing the encrypted images shows images that appear to just be black and white static, but with the proper authentication will reveal the original image. This actually came out around July 15, but with the recent developments from Apple regarding scanning user photos, this story has just become a lot more relevant. The article does not explicitly state that the technology works with iCloud specifically, but they do claim it works with Google Photos and "popular cloud photo services, such as those from Google, Apple, Flickr, and others."

 

Quotes

 

Quote

The system, dubbed Easy Secure Photos (ESP), encrypts photos uploaded to cloud services so that attackers — or the cloud services themselves [emphasis added] — cannot decipher them. At the same time, users can visually browse and display these images as if they weren't encrypted. They presented their study, "Encrypted Cloud Photo Storage Using Google Photos ," at MobiSys 2021, the 19th ACM International Conference on Mobile Systems, Applications, and Services, on June 30, 2021.

Quote

Even if your account is hacked, attackers can't get your photos because they are encrypted.

 

- Jason Nieh, Professor of Computer Science

 

My thoughts

This is obviously great news for privacy enthusiasts who are concerned with Apple's new policy of scanning user images for content that may endanger children. Righteous as the cause may be, many still view this as a huge breach of privacy. Technology like this may become a lot more commonplace moving forward.

 

Sources

https://www.engineering.columbia.edu/news/encrypting-cloud-photos

 

Image

Attached is an example of the process, showing the original, unencrypted image, and the three images that are actually uploaded to the cloud. Note that this is not merely separating the RGB values into 3 different images, it's a full encryption process using an AES-generated keypair.

template_hero.jpg

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

14 minutes ago, thechinchinsong said:

Seems rather useful and I'm actually surprised that something like this hasn't been made or at least made more popular in recent years.

A brief skim of their journal article shows that the reason this hasn't been done before is because cloud services like to compress images which can destroy encrypted images, making them impossible to recover. This new tech supposedly is resistant to the kind of compression that Google Photos or iCloud does which is what makes this development so novel. Very cool tech.

 

7 minutes ago, Zodiark1593 said:

Would pretty much demolish the usefulness hash matching as well. Awesome tech, and smart use of the subpixel channels. 

I agree, the encrypted images would have totally different hashes which would make hash matching impossible.

 

My main concern at this point is how they're going to get this on Apple devices. All their tests were done on a Pixel (from a brief skim of their journal article) which is a lot simpler to load apps on, or even sideload if necessary. I can't imagine Apple would allow this on their app store, so I'm very curious to see how these researchers plan to make this accessible for iPhone users.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, iamaperson620 said:

 

 

My main concern at this point is how they're going to get this on Apple devices. All their tests were done on a Pixel (from a brief skim of their journal article) which is a lot simpler to load apps on, or even sideload if necessary. I can't imagine Apple would allow this on their app store, so I'm very curious to see how these researchers plan to make this accessible for iPhone users.

Worst case scenario is a web app can be developed. Code is downloaded from the website via browser. Photos can be linked to it, and the code can be ran on-device. The encrypted data can then be saved separately like any web image. 
 

The primary downside being throughput, as the browser code is already slower than native, and batch processing lots of images would be difficult, meaning you’re probably encrypting them one at a time. Likewise, decrypting wouldn’t be overly convenient either. 

My eyes see the past…

My camera lens sees the present…

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, InsertPi said:

Summary

Computer scientists at Columbia University have engineered a technique to encrypt user photos stored on the cloud in places like Google Photos or iCloud (especially relevant right now). The technique generates three encrypted images-- one containing data about the red, one with data about the green, and one with data about the blue. Viewing the encrypted images shows images that appear to just be black and white static, but with the proper authentication will reveal the original image. This actually came out around July 15, but with the recent developments from Apple regarding scanning user photos, this story has just become a lot more relevant. The article does not explicitly state that the technology works with iCloud specifically, but they do claim it works with Google Photos and "popular cloud photo services, such as those from Google, Apple, Flickr, and others."

 

Quotes

 

 

My thoughts

This is obviously great news for privacy enthusiasts who are concerned with Apple's new policy of scanning user images for content that may endanger children. Righteous as the cause may be, many still view this as a huge breach of privacy. Technology like this may become a lot more commonplace moving forward.

 

Sources

https://www.engineering.columbia.edu/news/encrypting-cloud-photos

 

Image

Attached is an example of the process, showing the original, unencrypted image, and the three images that are actually uploaded to the cloud. Note that this is not merely separating the RGB values into 3 different images, it's a full encryption process using an AES-generated keypair.

template_hero.jpg

what if a person with bad intent gets access to the code for the encryption?

|:Insert something funny:|

-----------------

*******

#

Link to comment
Share on other sites

Link to post
Share on other sites

How much power does it take to encrypt the data though? Seems it would be cumbersome if you have thousands of photos, needing your computer to encrypt data on the background. Also, I share a lot of photos stored on google, so that could be cumbersome too I guess.

is this really that much different than just zipping the files into a password protected file and then uploading that?

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, InsertPi said:

Righteous as the cause may be, many still view this as a huge breach of privacy. Technology like this may become a lot more commonplace moving forward.

It is already common place apple is the last large photo storage provide to add this photo scanning, already Google, and MS do this scanning as well as dropbox and other storage services.  

Link to comment
Share on other sites

Link to post
Share on other sites

Huh, that's a good setup. It reminds me a lot of 3DES or Triple DES, which was an approach to better encrypt with a really fast algo that's still in use in places. (AES actually replaced it, generally.) Going back to the approach to triple encrypt is really potent, especially with file types that are fairly easily divisible. 

Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, poochyena said:

How much power does it take to encrypt the data though? Seems it would be cumbersome if you have thousands of photos, needing your computer to encrypt data on the background. Also, I share a lot of photos stored on google, so that could be cumbersome too I guess.

is this really that much different than just zipping the files into a password protected file and then uploading that?

Almost everything recent or new has AES hardware acceleration. Even if it doesn't, the OS will have very efficient processing of it via software libraries. 

Link to comment
Share on other sites

Link to post
Share on other sites

23 minutes ago, adarw said:

what if a person with bad intent gets access to the code for the encryption?

Kind of moot at this point in time. Open source encryption tools, for example, can be used by anyone regardless of intent. Bad guys with significant resources have also coded their own tools as well. 

My eyes see the past…

My camera lens sees the present…

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, poochyena said:

How much power does it take to encrypt the data though? Seems it would be cumbersome if you have thousands of photos, needing your computer to encrypt data on the background. Also, I share a lot of photos stored on google, so that could be cumbersome too I guess.

is this really that much different than just zipping the files into a password protected file and then uploading that?

The paper talks a bit about performance metrics and it seems that, while there is measurable overhead, it isn't terrible.

 

1 hour ago, adarw said:

what if a person with bad intent gets access to the code for the encryption?

It would be little different from having your password leaked. No security measure is immune to social engineering, so at some point it's up to you to protect your password.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

44 minutes ago, InsertPi said:

The paper talks a bit about performance metrics and it seems that, while there is measurable overhead, it isn't terrible.

 

It would be little different from having your password leaked. No security measure is immune to social engineering, so at some point it's up to you to protect your password.

i see, looking at your bottom what gpus does your uni use to do machine learning 

|:Insert something funny:|

-----------------

*******

#

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, adarw said:

i see, looking at your bottom what gpus does your uni use to do machine learning 

I get my GPU resources through the Alabama Supercomputing Authority. Currently I'm using Tesla V100s for my Master's thesis research, but supposedly the Dense Memory Cluster is getting a couple Ampere A100 GPUs later this year, so I'll probably switch over to those as soon as they're available.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

3 hours ago, thechinchinsong said:

Seems rather useful and I'm actually surprised that something like this hasn't been made or at least made more popular in recent years.

Because there needs to be both a demand and willingness to respond to demand. Most American companies generally don't pursue things unless there is a profit motive. Apple and Google also have diametrically opposed goals when it comes to privacy. Apple moves a lot slower, like a LOT, and supports their stuff for years. Google moves a lot quicker, and also depreciates/garbages their software so fast that people don't want to adopt google's proposals for standards.

 

Anyway, there's plenty of ways to encrypt photos, so there's nothing novel about this. Without even looking at the articles, it probably does this:

splits into RGB(A) or CMYK, compresses the channels individually, and then encrypts the result before repackaging the image. This also has the consequence that if the channels are uploaded as separate channels, the cloud service will "helpfully destroy the image with lossy compression" or optimization features.

 

The way you ensure things are encrypted and not destroyed in the process is by having the encryption done only on the device end, not the storage provider's end. However that also means you get into double and triple compressions and encryptions that waste processing time on the device and the service provider's end, when it only needed to be compressed and encrypted once. Throw in a VPN and you now how four encryptions.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, Kisai said:

Anyway, there's plenty of ways to encrypt photos, so there's nothing novel about this. Without even looking at the articles, it probably does this:

splits into RGB(A) or CMYK, compresses the channels individually, and then encrypts the result before repackaging the image. This also has the consequence that if the channels are uploaded as separate channels, the cloud service will "helpfully destroy the image with lossy compression" or optimization features.

There is something novel about this because all other known ways to encrypt photos prior to this would be destroyed when uploaded to the cloud because the cloud performs lossy compression on images. I would recommend at least giving a glance over the paper. This method of encryption is resistant to compression which is pretty neat. Besides, if it wasn't novel to at least some extent, it wouldn't be featured by ACM.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

46 minutes ago, InsertPi said:

I get my GPU resources through the Alabama Supercomputing Authority. Currently I'm using Tesla V100s for my Master's thesis research, but supposedly the Dense Memory Cluster is getting a couple Ampere A100 GPUs later this year, so I'll probably switch over to those as soon as they're available.

oh thats cool! what would the speed difference be between the tesla v100 and the ampere a100?

 

im a highschool student taking a course called cs50 (im just starting 😞). would you recomend any machine learning courses after i finish cs50? (preferably free)

|:Insert something funny:|

-----------------

*******

#

Link to comment
Share on other sites

Link to post
Share on other sites

24 minutes ago, adarw said:

oh thats cool! what would the speed difference be between the tesla v100 and the ampere a100?

 

im a highschool student taking a course called cs50 (im just starting 😞). would you recomend any machine learning courses after i finish cs50? (preferably free)

I'm not actually doing machine learning or anything that can make use of the tensor cores easily, but reading numbers online the A100 seems to be at least 50% faster than the V100 for my use case, and up to 250% faster in some cases.

 

And like I said since I don't do machine learning I don't have any good resources at the moment. I would prioritize learning the fundamentals like algorithms and data structures first (and if you pursue a computer science education that'll be the majority of your computer science classes the first two years). Only after you have those fundamentals would I personally start seeking out things like machine learning. For instance, if you're doing deep learning at an in-depth level, it helps to know a little bit of graph theory and a lot of probability theory and linear algebra. I would also recommend getting yourself familiar with calculus, since probability theory uses a lot of calculus. The probability course at my university requires you to have taken Calculus 3.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

37 minutes ago, InsertPi said:

I'm not actually doing machine learning or anything that can make use of the tensor cores easily, but reading numbers online the A100 seems to be at least 50% faster than the V100 for my use case, and up to 250% faster in some cases.

 

And like I said since I don't do machine learning I don't have any good resources at the moment. I would prioritize learning the fundamentals like algorithms and data structures first (and if you pursue a computer science education that'll be the majority of your computer science classes the first two years). Only after you have those fundamentals would I personally start seeking out things like machine learning. For instance, if you're doing deep learning at an in-depth level, it helps to know a little bit of graph theory and a lot of probability theory. I would also recommend getting yourself familiar with calculus, since probability theory uses a lot of calculus. The probability course at my university requires you to have taken Calculus 3.

this was very informative thanks! may i ask what your master research about. lol curiosity gets me sometimes

|:Insert something funny:|

-----------------

*******

#

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, adarw said:

this was very informative thanks! may i ask what your master research about. lol curiosity gets me sometimes

Sure, feel free to message me on here so we don't clutter up this thread. I can send some code over if you're interested.

Master's student and student researcher at The University of Alabama in Huntsville, Department of Computer Science

Ask me about high-performance computing, general-purpose GPU programming, or computer architecture

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, InsertPi said:

The paper talks a bit about performance metrics and it seems that, while there is measurable overhead, it isn't terrible.

Figure 7 seems to say otherwise.  It seems the average time to upload to Google was about 1.25 seconds (guessing based on graph)...but just uploading their encrypted photos took about 2 seconds...and uploading (and generating the encrypted photos) took 2-4 seconds (depending on image size)...I mean if you encrypt a larger image, it took nearly 4x the amount of time.

 

Downloading with decryption looks worse in my opinion.  A larger image to download and decrypt took roughly 2 seconds vs like 0.25 seconds (Google photo)...you could download and view 8 Google Photo images in the time it takes to download and view 1 of their images.

 

Looking at the numbers as well (figure 6)...it seems to me as though the approach is roughly 2x the space requirement, and roughly 1.5 seconds overhead in decryption.  That in itself makes it a non-starter in my mind.  People are about convenience and having to sacrifice that much for cloud storage I don't think is going to happen.

 

15 hours ago, InsertPi said:

A brief skim of their journal article shows that the reason this hasn't been done before is because cloud services like to compress images which can destroy encrypted images, making them impossible to recover. This new tech supposedly is resistant to the kind of compression that Google Photos or iCloud does which is what makes this development so novel. Very cool tech.

I'm not really sure this is all that novel....this is just another university project that is being hyped.  Even in my class, as the beginning of a second year project, I had to create a steganograhy image (coding it to exploit the DCT portion of jpg)...this just takes a concept like that but applies it to random noise images, with error correction.

3735928559 - Beware of the dead beef

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, poochyena said:

How much power does it take to encrypt the data though? Seems it would be cumbersome if you have thousands of photos, needing your computer to encrypt data on the background. Also, I share a lot of photos stored on google, so that could be cumbersome too I guess.

is this really that much different than just zipping the files into a password protected file and then uploading that?

AES is very fast so that shouldn't be an issue. 

I agree with your last statement though. What's the point of this? Seems like a hell of a lot of work just to get the same results as encrypting a zip file and uploading that. Way to over-engineer a solution.

Link to comment
Share on other sites

Link to post
Share on other sites

Sorry, but how is this special? Instead of encrypted code that looks like bunch of random symbols, you now see a photo that looks like bunch of random noise. They invented encryption that just visualizes the encryption. Um, great I guess?

Link to comment
Share on other sites

Link to post
Share on other sites

Throw away apple junk, get android phone without gapps a and a self hosted nextcloud. Good luck scanning that.....

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×