Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>So it seems to me that you have 2 main requirements that you are attempting to use <code>deterministic RSA</code> to solve:</p> <ol> <li>Allowing voters to ensure the integrity of their vote</li> <li>Allowing auditors to ensure the integrity of all votes</li> </ol> <p><a href="http://en.wikipedia.org/wiki/Digital_signature" rel="nofollow">Digital Signatures</a> should solve this problem. You can take your ciphertext from column 1, hash it, and encrypt the hash with a <strong>private</strong> key. That encrypted hash can then be placed in column 2. To verify the integrity of column 1, simply use the corresponding public key to decrypt the hash in column 2, hash column 1, and compare those 2 values. If they are equal, the data has not been tampered with. Only parties that have the private key could possibly tamper with the data in these columns, because only they can make a matching pair. This is similar to an HMAC, but has the advantage of using public/private keys rather than a secret shared key. Thus anybody can verify, but only trusted parties can modify.</p> <p>One thing to note about deterministic schema is that it will leak information in many ways. Let's assume that I know I voted for <code>Blue</code> as my favorite color. I can see that the resulting ciphertext of my vote is 0x12345678. If the schema is completely deterministic, I know that anybody else that has a corresponding ciphertext of 0x12345678 also voted for <code>Blue</code>. Also, since you will typically have a finite set of vote choices, a <a href="http://en.wikipedia.org/wiki/Chosen-ciphertext_attack" rel="nofollow">chosen plaintext attack</a> is incredibly easy. Thus you really want to let RSA do its job and use the intended padding scheme.</p> <p>The next thing you may want to consider is protecting the system from a form of <a href="http://en.wikipedia.org/wiki/Replay_attack" rel="nofollow">Replay Attack</a> by numbering the votes or something like that. As I understand your schema, it looks like if I somehow got access to where you store your votes (or got in the middle of any communication), I could essentially spoof or spam fake votes just by replaying or copying data that I've already seen (another problem with being deterministic).</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload