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.
Your cryptographic orientation is your own business.
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.
Okay... so you can add and multiply without knowing the decrypted version?
So... multiply by zero. You now know the hidden value is zero. Repeatedly add one, and you'll know what the 'encrypted' version of every possible value looks like... you now have a dictionary.
What am I missing here?
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.
this is a bit offtopic, but I can't resist linking another interesting release
https://github.com/exaexa/codecrypt
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
The content has to be displayed eventually.
If needed you can tap it from the LCD panel circuitry. There are actually patents for technology trying to prevent this. All that means tapping the signal gets a bit more involved, you have to sample every cell instead of the signal coming from the driver chip. Still, doable, if you really want to get the content.
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?
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 DRM chain:
Raw video stream -> Compress to MPEG -> Encrypt -> Send to customer's player -> Decompress without decrypting -> Send to television -> Television decrypts -> Cracker grabs video stream here
The only reason it's done at the player level is players are easy to crack and load software on, being basically general-purpose computers in a fancy little box. With the advent of "smart TVs" that could soon be the TV. At the point they can afford the computing power to do this on-chip on a special board before it hits the screen, that will be easy to program too, unless the entire chip runs encrypted code, which may be possible. Then you just intercept on the wire as it leaves that board.
Also that will require everyone buy new special TVs and not everyone even has an HDTV yet and this would only work if all the studios demanded everyone buy a new (expensive!) TV just because they're intentionally breaking their content. Time to keep an eye on the 4K BS.
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/
Reminds me of the joke...
Q: Is CmdrTaco gay?
A: He mos' certainly is!
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
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++;
Your method will defeat any and all DRM, with some loss of quality.
But as you so insightfully referred to, people used to watch VHS tapes without problem so perhaps quality isn't as important as content. I think good content is more important than shiny pixels. Sure, I would like good content in glorious 2160p, but I don't particularly need it to enjoy a movie.
Have a look at the (lack of) quality of this code, compared to real-world cryptographic requirements. Aside from choosing a C++ implementation, it's just appalling. Consider the vulnerability to timing attacks: branching, data-dependent execution, etc. I guess these 'experts' will wait for serious crypto developers to fill the gap between theory and practice, as usual. I'm sure it has merit, but these number theoretic libraries should be regarded as nothing more than reference implementations until academics accept the often ugly requirements of cryptographically blind execution in software.
I don't believe that timing attacks and simple power analysis can ever be completely countered in a software implementation; but this just isn't good enough for people who should be taking the lead on best practices.
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
Without knowing NSA's 'Suite A' algorithms, I'd take any of their recommendations with a grain of salt. If they're relying on security through obscurity, it brings a lot of assumptions into question.
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.
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.
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.
good explanation!
A practical application of group theory in computer science!
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 :(