# construct an election protocol for the following election problem..? [closed]

I am something new to election protocols and I am trying to construct an election protocol for the following problem:

Let $A= \lbrace a_{1} , . . . , a_{n} \rbrace$ and $B = \lbrace b_{1} , . . . , b_{m} \rbrace$ be two groups of voters, and $K_{1}$and $K_{2}$ be two candidates. One of the candidates is to be elected. A candidate wins the election if he gets at least 50% of the votes (absolute majority) and if he gets at least 10% of each group (veto of group A or B).

You are not allowed to use or assume the existence of a trusted center.

-

1
There are some holes present in your question. What must be kept private (individual votes, the exact percentages earned, the fact that someone even voted)? What assumptions can be made about the participating parties (are they all present at the same time, only some threshold will behave maliciously, they don't collude, etc)? – mikeazo♦ Dec 18 '12 at 16:00
only individual votes should be kept private – Sam Dec 18 '12 at 16:34
Can you say anything about what practical context this problem arose in? – D.W. Dec 19 '12 at 21:34
– D.W. Dec 20 '12 at 21:55

## closed as off topic by D.W., mikeazo♦Dec 21 '12 at 12:25

Questions on Cryptography Stack Exchange are expected to relate to cryptography within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.

## 1 Answer

A general rule of thumb when developing cryptographic solutions to a problem is to start with something that gets you as much as possible of what you want and make as few modifications as possible to make up the difference.

In this case, I'd start with something like Practical Multi-Candidate Election System. It would give you tallys for $K_1$ and $K_2$. From there you would know if the candidate got 50%. From there, adding the necessary functionality wouldn't be too hard, but will require you to more formally define what is allowed, what is public knowledge (e.g., is a voter's group membership public).

If, for example, the voter's group membership is public, then when they cast their ballot, the ballots can be separated by groups and a tally given for each group in addition to the overall tally. Then you'd know if the candidate gets 10% of each group.

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 6, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9544220566749573, "perplexity_flag": "middle"}