Timeline for How could I make the results of a yes/no vote inaccessible unless it's unanimous in the affirmative, without a trusted third party?
Current License: CC BY-SA 4.0
18 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Aug 6, 2020 at 13:15 | comment | added | timuzhti | @securityOrange The cipher used is fragile, yes, which is honestly a good illustration of why you shouldn't roll your own. The way I see it, this answer tries to use/design a homomorphic cipher that's hopefully reducible to integer factorisation or the discrete log, and also at least OW-CPA if not IND-CPA (which is hardly impossible, RSA does it), but doesn't quite work—because in the process of simplifying things, it ended up using the wrong function, which reduces to an easy problem! The best ciphers for this are probabilistic by default, so they can be IND-CPA while remaining homomorphic. | |
Aug 6, 2020 at 4:47 | comment | added | securityOrange | @timuzhti I wouldn't agree, since the variation that lying about your computations could undo the vote. For example, if N = 3 and there was 1 vote, and if 2 out of 3 people do the multiplication honestly except for the last, there's a 50% chance that person gives a yes and undoes the outcome of the vote. Relying on only 1 negative vote makes it a brittle system, so a single dishonest person - a single Byzantine general, shall we say :D - corrupts the result. Know what I mean? :) Thoughts? | |
Aug 5, 2020 at 15:51 | comment | added | Milo Brandt | Worth noting: Any individual's vote could be discovered by their two neighbors collaborating; if I wrote numbers A and B, my left neighbor learns A directly and my right neighbor can figure out B by multiplying what I say by the inverse of the number they gave me. If my neighbors wanted to break the system and trust each other, they could work together to learn AB. | |
Aug 4, 2020 at 16:15 | comment | added | WoJ | You lost me at "pick a big prime". (in reality the answer is fine, I just feel that that since OP provided an actual context for the question (family, cult, ...), the answer should be understandable by the art major cousin) | |
Aug 4, 2020 at 15:55 | comment | added | Ilmari Karonen | I believe your scheme could be significantly simplified (in particular, by working in the additive group modulo an arbitrary large number m instead of the multiplicative group modulo p), but it also suffers from a fundamental flaw: a "no" voter can determine whether or not everyone else voted "yes". And I don't see any way to fix that. | |
Aug 4, 2020 at 13:44 | comment | added | Kevin | @timuzhti - ah, I missed there wasn't a pass both directions. But it's still the same issue. Whoever Bob gives his number to? If Bob is telling the truth, there's only one other number they can have (the one, multiplied by the other, that is mod=1 with respect to P.) If that person collaborates and asks, "Hey, what number did you give Bob?" it should be trivial to figure out whether Bob is lying. | |
Aug 4, 2020 at 12:58 | comment | added | timuzhti | @securityOrange doing the multiplication and then lying and giving a random number isn't really distinguishable from just doing the multiplication with a random number in the first place (i.e. simply voting no). Of course, there may be side channels, if the effective-no-voter decides that actually doing the multiplication is too much bother and just gives the answer ;) | |
Aug 4, 2020 at 12:52 | comment | added | timuzhti | @Kevin Bob only gives one person one number, his a. He receives a number from a different person | |
Aug 4, 2020 at 11:55 | history | edited | kelalaka | CC BY-SA 4.0 |
polish
|
S Aug 4, 2020 at 7:26 | history | suggested | abligh | CC BY-SA 4.0 |
Three orthographic corrections
|
Aug 4, 2020 at 7:07 | review | Suggested edits | |||
S Aug 4, 2020 at 7:26 | |||||
Aug 4, 2020 at 3:09 | comment | added | securityOrange | Are we assuming the cult members here are performing these computations by hand? If so, is there something that would prevent them from simply falsifying their computations? I'd suggest we would want to require them to prove their answers to all other members. | |
S Aug 4, 2020 at 0:14 | history | suggested | Script Kid | CC BY-SA 4.0 |
Security.SE does not implement $ formatting so I made some formatting by other means.
|
Aug 3, 2020 at 21:12 | comment | added | NotThatGuy | Can't you just throw all the numbers into a hat so there's no way to trace individual numbers back to a specific person? | |
Aug 3, 2020 at 19:47 | review | Suggested edits | |||
S Aug 4, 2020 at 0:14 | |||||
Aug 3, 2020 at 18:36 | comment | added | Kevin | Wouldn't the person on your right and the person on your left be able to collaborate to figure out whether you were voting 'Yes', though? If we're worried about witch hunts, couldn't one person say "Hey, I'm kinda suspicious of Bob. He gave me ###### - what did he give you? Let's find out if he voted Yes" | |
Aug 3, 2020 at 14:30 | history | edited | Hagen von Eitzen | CC BY-SA 4.0 |
added 42 characters in body
|
Aug 3, 2020 at 14:17 | history | answered | Hagen von Eitzen | CC BY-SA 4.0 |