If 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! :)
Is there some kind of interoperability with other libraries? Or does it support CPU encryption / decryption ? For example, one can expect clouds to have GPUs to perform computations but encryption and decryption are typically done by clients on various devices where portable code is expected.
Homomorphic encryption
71–80 of 86 posts
Re: Homomorphic encryption
#72For 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.
I guess your concern is that the output is "one of the encrypted input" values and hence identified, although not decrypted. Subsequently, all the input values would be fed into the "max" module and their complete order can be determined by the one running the homeomorphic server.
In that case we will need to have an output where all inputs are returned. Perhaps a map with indices and values (all encrypted) as input and as output would be sufficient.
Re: Homomorphic encryption
#73Earlier quoted context omitted.
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?
Asymmetric encryption is great, but it means that all rebasing/transforming of edits has to be done client side. Having a homomorphic system would allow us to do some of this work server-side without revealing the documents themselves.
did you want to transform within words or something?
Re: Homomorphic encryption
#74Earlier quoted context omitted.
Any political voting system will need a trusted third party to run the voter registration/identity system, so I doubt the lack of practical homomorphic encryption is blocking this. There are other voter-verifiable systems that don't rely on HE for trustworthy counting: https://www.chaum.com/publications/AccessibleVoterVerifiabil... The major problem with online voting is that people can be coerced into voting against…
How does online voting differ from mail voting? The only difference I see, is, the mail is sent via the postal service and the online vote is sent via my personal computer and internet connection. To get around this, the government could issue verified voting tablets that are locked down and use secured connections. Otherwise, people can force me to vote different without the authorities noticing already.
Re: Homomorphic encryption
#75Earlier quoted context omitted.
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.
verify that my vote was counted correctly. i.e. that my vote wasn't changed or fraudelently presented to me.
Re: Homomorphic encryption
#76Earlier 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…
Imagine constructing a system that can thwart a abusive, tyrannical father who insists that his wife and children vote for a particular candidate (to make it concrete.) If you can get past him, your voting system passes the first test. Now imagine someone is offering $50 if you vote in a particular way. If there's no way to figure out how someone would claim it, it passes the second test.
The abusive father can literally just fill out all of his family's ballots, and the $50 could be claimed by filling out the ballot in front of the buyer. You could thwart this with allowing multiple votes but only accepting the first, but then the father or buyer could just have the ballots filled out immediately at the first legal moment.
I don't know that it's a thing that can be done without totally private environment around the voter and the record; meaning that the actions of the voter cannot be observed.
Re: Homomorphic encryption
#77If this interests you, a related concept with similar applications as HE is functional encryption: https://en.m.wikipedia.org/wiki/Functional_encryption
Re: Homomorphic encryption
#78Earlier quoted context omitted.
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…
If anyone has the ability to confirm your vote, either without you or through you, you can be compelled or paid for it. Imagine constructing a system that can thwart a abusive, tyrannical father who insists that his wife and children vote for a particular candidate (to make it concrete.) If you can get past him, your voting system passes the first test. Now imagine someone is offering $50 if you vote in a particular…
Re: Homomorphic encryption
#79Earlier quoted context omitted.
If anyone has the ability to confirm your vote, either without you or through you, you can be compelled or paid for it. Imagine constructing a system that can thwart a abusive, tyrannical father who insists that his wife and children vote for a particular candidate (to make it concrete.) If you can get past him, your voting system passes the first test. Now imagine someone is offering $50 if you vote in a particular…
Those are cause for concern, but let's be realistic, the percentage of how many coercive ballots must be very low, I'd guess less than 1%. I think the pros of mail in voting (getting a greater percentage of the population to vote because they can do so at their leisure, don't have to take time off of work, don't have to stand in lines, etc.) outweigh the cons (such as potential coercion or selling of votes).
There are also countries where turnout is consistently above 70% and there is no mail voting. In the US the obstacles to voting are not having to go to a polling station: voter registration due to not having a federal ID, voting on a Tuesday rather than during the weekend, gerrymandering due to political bodies bring able to affect the redistricting process, and so on.
Re: Homomorphic encryption
#80Earlier quoted context omitted.
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…
Just the way I said in the comment you are replying to. Well, actually, I know two ways, that is just one of 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 Pa…
If it's possible to burn a ballot (i.e. associate the set of bar codes to actual candidates), shouldn't it be possible to "burn" a ballot after the fact as well?
i.e. we have 4 barcodes, I need a way to associate each barcode with a candidate to burn it, so why couldn't this happen after the fact as well?
I assume homomorphic encryption might help here, I just am missing it.