Earlier quoted context omitted.
I'm dying for this. My team builds ML models on text corpora. Most of this data is sensitive. My company has very strict data privacy policies and it's a pain to even share the data with other teams in the department. I've made it part of my long-term goals to facilitate secure sharing of sensitive data across the organization. Numerical data seems to be the easiest to anonymize (randomized response, etc), but I have…
Hi, I've been replying to other people in this thread. I work at NuCypher doing some research and cryptography engineering. I work on Proxy Re-Encryption and Fully Homomorphic Encryption. Do you mind sending me an email with your use case and needs? I'd love to have a chat with you. john@nucypher.com
Homomorphic encryption
61–70 of 86 posts
Re: Homomorphic encryption
#62For a layman like me it sounds really cool, almost like magic. Consider a trivial operation like finding a maximum value in a list. How is that supposed to work on encrypted values while simultaneously providing strong encryption? So something like adding N to everything in the list is not an acceptable encryption.
Today is the first time I heard of Homomorphic Encryption so I have 0 knowledge about this. But just to show this is not magic, you can provide N*N number of lists where each list has totally different results and then get the max index for each list as a return. Since you know what original list was the right one, you can keep that result and discard rest
I guess one brute force way to do it is making encryption unnecessary. For an input of N bits, have the results calculated/returned for all 2^N possibilities. Does not sound very practical.
Re: Homomorphic encryption
#63If anyone is interested in playing with Fully Homomorphic Encryption, we (NuCypher YC S16) built NuFHE ( https://github.com/nucypher/nufhe/ ). It's written in Python and has excellent documentation, so you can try building some circuits and playing around with it. It requires a GPU to run, but it's also the fastest implementation of FHE in the world (that I know of). Let me know what you think! :)
Re: Homomorphic encryption
#64Earlier quoted context omitted.
You open yourself to vote buying and voter cohersion attacks, historically the most common voting fraud mechanism in the states.
any verifiable voting mechanism opens oneself up to vote buying. if I can use homomorphic encryption to verify my vote I can give the same info needed (say this 128 bit number) to someone else.
Re: Homomorphic encryption
#65For a layman like me it sounds really cool, almost like magic. Consider a trivial operation like finding a maximum value in a list. How is that supposed to work on encrypted values while simultaneously providing strong encryption? So something like adding N to everything in the list is not an acceptable encryption.
Re: Homomorphic encryption
#66Earlier quoted context omitted.
Well, no, if you do it cryptographically, at least with the proper mechanism, you can prevent votes from being buyable. In your case, if someone wants to buy your vote, they can ask you to text the number to them before it has appeared as a matter of public record—and if you voted for the Right Person they will pay you. The 128-bit number makes this very hard to forge, whereas to destroy vote-buying you want to make…
maybe I'm missing something, but I can't see any system that allows me to verify my vote after the fact not enabling a vote buying mechanism. As I understand it (perhaps incorrectly), the primary thing that makes vote buying financially difficult is the fact that a person's vote can't be verified. how does homomorphic encryption enable me to verify my own vote but prevent anyone else from using the info I'd give them…
Let me put it a different way. Let us suppose that you are in New York State in 2016, voting for the US president, and let's ignore the strange things that can happen with write-ins. After a random shuffle your ballot might look like this:
| BALLOT #5846
|
1. Hillary Clinton | [ ] [barcode]
Democratic Party |
2. Jill Stein | [ ] [barcode]
Green Party |
3. Gary Johnson | [ ] [barcode]
Libertarian Party |
4. Donald Trump | [ ] [barcode]
Republican Party |
As this ballot is being presented to you, it is being cut by a sharp blade along that line through the center. So you have these two halves, and you know that they once belonged to the same piece of paper.The right hand side is scanned and it is what we make public. Everyone can confirm that you voted in this past election, and you punched the third (say) square in your ballot. But we also make it really easy for you to take, outside of the voting booth, any of a number of other left-hand sides in other random permutations. So if you wanted a left-hand side that said "Trump, Johnson, Stein, Clinton" that is easily available for you to take out of the booth.
Now after the election you can keep either or both papers and go to a government-run website and confirm that that right-hand side corresponds to who you voted for, and you can start a political watchdog group to make sure that the homomorphic operations were properly done on all of these peoples' right-hand-sides-of-ballots. But that web site is not saying "Oh hi it's you, you voted for Gary Johnson," it's saying "Oh hi it's you, you voted for the third person on your ballot." You know that the left-hand side you have says that candidate #3 was Gary Johnson, you saw the paper cut with your own eyes. But to everyone else, that left-hand-side is just a piece of paper.
So: we have made it very easy for you to forge any other vote, as far as any other party would be able to verify. Nobody else can confirm the connection between the piece of paper you hold in your hand and the piece of paper that has been scanned and appears in the public database. And since this is very easy to forge it is very valueless as a piece of information for vote-buying purposes.
So that stuff is all really straightforward. The only dodgy thing is, what if I were to hand you a ballot like this where every vote on the right hand side happened to be a bar code for Jill Stein? Since the number is encrypted, that is not something you would otherwise have access to.
And the solution there is burning ballots on-demand. You can make requests to the election authority asking to decrypt a ballot during the election; indeed we print a lot of extra ballots expecting folks to do this and we declare it their civic duty. When you do so, you get to reveal the "true" left-hand-side for a given right-hand-side and confirm that they are the same—but that ballot is thereafter invalidated and cannot participate in the election. As more and more people do this, it becomes more and more costly to do less and less vote-rigging in this way. So you get an implicit assurance that no tampering has happened in the process of getting this ballot to you, if you can trust that your communication pipeline to the decryption authority is secure and they are not compromised. (And if they are compromised there is very little you can do in any case.)
(The other mechanism just has a ballot which is two pieces of paper attached above each other with labels on the one piece of paper and holes that let you punch out the other piece of paper -- you can go online after the election and verify that the hole which was punched was the one you punched, but your ability to get other front-sheets at the voting booth makes it very easy for you to forge a ballot for say your employer where you appear to have publicly voted for their preferred candidate but secretly you voted for another one.)
Re: Homomorphic encryption
#67Why do people always talk about arbitrary computation in relation to homomorphic encryption? What I really want is a homomorphic encryption system which allows me to arbitrarily slice and concatenate strings without knowing their contents. This would be immensely useful for implementing end-to-end encrypted collaborative editing of documents. Is homomorphic encryption there yet?
So you want to slice and concatenate strings without you yourself and any other collaborators knowing what the string is? what about hashing each word? you could slice and concat on whitespace boundaries if that's the case. i'm not sure how this helps e2e encrypted collaborative editing though. why not just use asymmetric encryption? what am i missing?
Re: Homomorphic encryption
#68Earlier quoted context omitted.
any verifiable voting mechanism opens oneself up to vote buying. if I can use homomorphic encryption to verify my vote I can give the same info needed (say this 128 bit number) to someone else.
Define "verifiable". There are absolutely schemes where I can't verify what my vote was after the fact, but can verify that it was counted.
Re: Homomorphic encryption
#69Earlier quoted context omitted.
I don't think that is a major problem, unless I am misunderstanding. Oregon for instance is all vote by mail, outside the watchful eye of any government authority.
What do you mean by "outside the watchful eye of any government authority"? Do you just mean the ballots are filled out at home where a government authority is not looking over my shoulder? Because everything else is controlled by the government. The ballots and booklets are printed by the government (who authorize what can be on the ballot and in the booklet), are mailed by a government agency, are checked by a gove…
I don't think this is currently happening, so I don't think it is a major issue.
Re: Homomorphic encryption
#70Seriously one of the most important area of mathematics for democracies in an online world. Homomorphic encryption promises a hidden and verifiable online voting system that does not rely on trusting third party.