IBM Researchers Open Source Homomorphic Crypto Library
mikejuk writes with news of an advancement for homomorphic encryption and open source: "To be fully homomorphic the code has to be such that a third party can add and multiply numbers that it contains without needing to decrypt it. In other words they can change the data by working with just the encrypted version. This may sound like magic but a fully homomorphic scheme was invented in 2009 by Craig Gentry. This was a step in the right direction but the problem was that it is very inefficient and computationally intensive. Since then there have been a number of improvements that make the scheme practical in the right situations Now Victor Shoup and Shai Halevi of the IBM T J Watson Research Center have released an open source (GPL) C++ library, HElib, as a Github project. The code is said to incorporate many optimizations to make the encryption run faster. Homomorphic encryption has the potential to revolutionize security by allowing operations on data without the need to decrypt it."
All cryptos should be able to marry any other crypto. Anyone that is homomorphic should really broaden their horizons.
Now you can start offering non-jokey encryption!
"When information is power, privacy is freedom" - Jah-Wren Ryel
How the heck can you know what operations you needed to perform on the data in the first place if you don't actually know what the data was?
File under 'M' for 'Manic ranting'
This would be great for manipulating encrypted data on hosted servers you could upload your encrypted database never decrypt it so you will not have to worry about your data beings stolen. while you may have to pay more as you are using more resources i can see this being useful in many environments where business are hesitant to move to cloud based servers for fear of privacy breaches of customer data.
---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
Can homomophic encryption be used to create near-perfect DRM?
Current DRM chain:
Raw video stream -> Compress to MPEG -> Encrypt -> Send to customer's player -> Decrypt -> Decompress MPEG -> Cracker grabs video stream here -> Re-encrypt HDCP -> Send to television -> Television decrypts HDCP
Homomorphic DRM chain:
Raw video stream -> Compress to MPEG -> Encrypt -> Send to customer's player -> Decompress without decrypting -> Send to television -> Television decrypts
But this assumes it is possible to perform an immensely complex transformation on the encrypted data. Is that even theoretically possible? Multiplying encrypted numbers is a long way from performing an MPEG decompression on an encrypted string.
This will be revolutionary for the healthcare industry.
Let me explain for those of you who have never dealt with HIPAA. HIPAA requires that an entity possessing protected healthcare information(PHI) keep that data safe and secure. Additionally, any outside entity coming in contact with PHI must sign a business associates agreement also agreeing to keep any PHI in their possession safe. None of the major cloud players will sign such agreements, which means any PHI can't go into the cloud. This means any practical deployment of say a hadoop cluster to reduce the process time of a large ETL job isn't feasible.
Now there is a tiny loophole in that encrypted PHI isn't treated as PHI at all. This means we can pass data through cloud services to backup for example, but doing any manipulating of the data is impossible due to the fact that as soon as you decrypt it, it's PHI and that's a big no-no. And this is where we lead back to homomorphic cryptography being revolutionary for the world of healthcare data.
It is a probabilistic encryption. That is, there are many different encryptions of the same value, to the point that knowing the plaintext that corresponds to a particular ciphertext does not give you any information. All modern encryption schemes are like this in order to prevent the attack you describe (or a similar one).
The process for turning symmetric FHE input public-key FHE involves encoding the plaintext using the encrypted "0" and "1", then using FHE to evaluate the symmetric encryption algorithm using the encrypted key. Decryption requires two symmetric decryption operations, using both keys.
Palm trees and 8
What you're missing is knowing the key to encrypt 0 and 1. If you already have the key to encrypt/decrypt the data, then you're already set. Without the encryption keys, how do you know whether 0 is represented by '852ee92374f0527bf7499161c' or '6dba27a49b5e0fc6979' (or whatever else)?
This is interesting for me as I am doing my PhD dissertation on homomorphic encryption. The problem we have, as a community, is that the computational assumptions used in these schemes are very new and we cannot come to a consensus as to whether the encryption schemes that result from them are going to remain secure 5, 10 or 20 years from now. For instance, NSA recommends that you only use AES, El Gamal, elliptic curve Diffie Hellman, and SHA-256. The community has butt loads of awesome and interesting protocols and techniques which use things not on this list. NSA is obviously being conservative because they have very important secrets to hide, but it leads to a problem where nothing can new can be "certified" to be secure. How do you even judge that something is "encrypted" if you are using a scheme that some grad student made up like a month ago?
https://en.wikipedia.org/wiki/Semantic_security
Let's put it this way: you could do the same with any public key cryptosystem by using the public key to encrypt the dictionary you described. The reason that does not work is that there are many (exponentially many in the security parameter) possible encryptions of each plaintext.
Palm trees and 8
None of the big players except Amazon's EC2 and Microsoft's Azure:
http://blogs.msdn.com/b/windowsazure/archive/2012/07/25/security-privacy-amp-compliance-update-microsoft-offers-customers-and-partners-a-hipaa-business-associate-agreement-baa-for-windows-azure.aspx
http://arstechnica.com/business/2011/09/amazon-cloud-earns-fisma-government-security-accreditation/
Sorry about the mess.
Homomorphic encryption is scary stuff, one could use it to make malware or drm schemes that would be, for all practical intents and purposes, impossible to reverse engineer:
http://www.kuro5hin.org/story/2010/12/15/151617/78/
None of the big players except Amazon's EC2 and Microsoft's Azure:
http://blogs.msdn.com/b/windowsazure/archive/2012/07/25/security-privacy-amp-compliance-update-microsoft-offers-customers-and-partners-a-hipaa-business-associate-agreement-baa-for-windows-azure.aspx
http://arstechnica.com/business/2011/09/amazon-cloud-earns-fisma-government-security-accreditation/
Thank you. I was aware that they were in technical compliance, but I was not aware that Azure had started offering the business associate agreement. The link below seems to indicate that AWS is still "looking into" the matter, but I haven't found anything conclusive that says they will offer it. Needless to say, I'm starting a project immediately to begin an Azure deployment for my organization.
https://forums.aws.amazon.com/thread.jspa?messageID=444933
I dunno, I found a device that pretty easily/cheaply rips the content from the tv screen.
I just point my phone at the tv and hit record.
In the old days I used a vhs recorder.
The documentation is mostly reference material and very dense. Anybody have some examples on how to actually use the library?
With the erection of homomorphic data centers, we should be able to pound our data injections directly and deeply into encrypted data mounds using a direct boaring method without worrying about compromising data health.
Have you fscked your local propeller head today?
How do you even judge that something is "encrypted" if you are using a scheme that some grad student made up like a month ago?
This is a problem that has already been solved. The answer is: You treat it like it's simply "security by obscurity" and assume it will be broken any day soon. The sad fact is that this is true for most of the encryption schemes thought up over the years.
And honestly, if homomorphic encryption can't work with a well tested and analyzed encryption algorithm, I'm not sure I'm very impressed about it..
c++;
It's always possible to get the audio un-DRMed with almost no loss of quality by just hooking a recorder up to the speaker cables and doing some basic electronics fiddling.
Video is much harder though.
Can I ask you what are the algorithms behind this secure voting method? When I watched this presentation I thought he was talking about homomorphic encryption, but after I read about it I realized it couldn't be, since the computation required for processing millions of ballots would be far too much.
`echo $[0x853204FA81]|tr 0-9 ionbsdeaml`@gmail.com
I can't say for sure, I am not familiar with that guy's work. There are many other systems that provide verifiable end-to-end voting (Punchscan and Scantegrity for example, which I have personall worked on) which do not require anything more than a secure symmetric key encryption scheme.
There is a famous voting system by Rivest which does use homomorphic encryption though, and I can explain to you why it still remains efficient. This article is specifically about fully homomorphic encryption schemes, which are universally very very slow. For a long time now, however, we have had singularly homomorphic encryption schemes, under which you can calculate either sums or products of ciphertexts, but not both. For instance, RSA is actually homomorphic under multiplication (c1^e * c2^e = (c1*c2)^e). There is another encryption called Paillier which is very well understood and is homomorphic under addition. Using that, we can have secure elections which require only homomorphic addition.
To see why this suffices, you have to know how such a system would actually work. In it's most basic form, the voters could encrypt a one for the candidate they want to vote for and a zero for the candidates they don't want to vote for. The judge then adds up all the ciphertexts to obtain an encrypted sum of the votes for each candidate. There are some subtleties to deal with, like how do you prevent someone from encrypting a 10 and getting more votes for their guy, but we can deal with these too. The point is, for election purposes we can get by with just a single homomorphism and it can actually be pretty fast.
You obviously haven't even read the wikipedia article on homomorphic encryption, much less any of the relevant papers. Every single thing you said was wrong.
Use of the words "good", "bad" or "evil" is almost invariably the result of oversimplification.
You're missing the point, this is not being released so that people can actually use it. Keys in this system measure in the gigabytes, and single multiplications take seconds. It is so researchers can apply their new ideas on how to make it more efficient without having to code this whole thing from scratch. It is a great help for research.
It is not that the algorithms have not been well tested. Actually the "algorithms" do not really need to be tested as we have security proofs that reduce to hardness assumptions. The problem is that the hardness assumptions simply have not been around long enough to be thoroughly vetted. RSA is based on the hardness of the RSA assumption (related to the hardness of factoring) which has had 40 years to be broken. These new homomorphic encryption schemes have been around for at most 4 years, which is NOTHING in the scheme of things.
If your scheme is over a finite field, then E(a) - E(a) will just be a literal zero. Technically this is an encryption of zero, but it has not security as it is an encryption of zero under every possible key. Knowing it doesn't really give anything to an adversary.
So... multiply by zero. You now know the hidden value is zero
In order to multiply by zero, you would need to already know the encrypted value of zero.
Zero is obtained by homomorhopically subtracting a record form itself.
Some drink at the fountain of knowledge. Others just gargle.
Screw homomorphic encryption! I want strong associated hashing. I.e. h(a*h(b)) = h(a*b). Unfortunately, it's possible only if P=NP :(