av robwe » 2010-09-03 22.28
joasi skrev:@robwe
Från det ena till det andra, skulle du kunna tänka dig att skriva avsnittet om Valsystemet i RDD-handboken? (
http://wiki.sobr.se/tiki-index.php?page ... tdemokrati). Tror du kanske har tänkt mer på detta än någon annan? Det är bara att skapa en användare och skriva i så fall. Jag tänker t ex på diskussionen vi förde för länge sedan om redundans genom oberoende kommunicerande servrar, användning av kryptering, det du skrev om nyligen ang. kommunikation kring förslag, vilken funktionalitet som bör tillhandahållas i övrigt, tillgänglighet via internet, bibliotek etc. Kanske 50 rader vore lagom
Japp, får tänka lite på saken. För några månader sedan så kom jag förresten på en förbättrad kompromiss vad gäller valhemlighet/röstsäkerhet. Kolla in det här:
Eller förresten, jag tittade lite med nya ögon på min gamla ring-algoritm igår. Det är förvisso fortfarande sant att det finns en inneboende motsättning mellan säker röstning och säker valhemlighet. Men man kan göra en lite smidigare kompromiss där valhemligheten får ett betydligt bättre skydd, utan att det kostar så mycket för röstsäkerheten. Tricket är att man bara anonymiserar ett steg, men har en ring som är betydligt större. Här är ett exempel på vad jag menar:
Modell: "9-2 Ring":
Man har en ring med 9 valservrar S1...S9. När medborgaren M ska rösta med rösten R, så skapar dennes klient nio stycken krypterade meddelanden enligt följande modell:
Sn(M, Snext(R)) (om n<9, next = n+1, annars next = 1, för att knyta ihop ringen)
S(Meddelande) är ett meddelande som är krypterad på ett sätt så att bara servern S kan läsa (RSA kryptering).
Sedan skickas vart och ett av dessa meddelanden till respektive server som det är krypterat för (det yttersta paketet).
Var och en av dessa servrar har en anonymiseringsfunktion A1... A9 som mappar om personnummer till andra godtyckliga personnummer.
När meddelandet tagits emot hos en server, så skickas följande meddelande iväg till nästa server i cirkeln, men identiteten hos den som röstade har förvrängts:
Snext(A1(M), Snext(R))
Snext kan då packa upp och läsa rösten, men identiteten på användaren är dold. Detta system får följande egenskaper:
Det krävs två valservrar i rad som samarbetar för att röja någons valhemlighet. Detta betyder att det inte finns någon databas någonstans där en tekniker skulle kunna hämta ut valhemligheter. För det krävs att man har data från två valservrar.
Varje enskild valserver kan fejka sin rösträkning, men detta upptäcks eftersom det skiljer mellan de andra servrarna. Man kan använda majoriteten av valservrarnas resultat, som slutgiltigt resultat, och det krävs minst 5 konspirerande valservrar för att ta över valsystemet på detta sätt.
Varje enskild valserver kan försöka manipulera röst räkningen hos nästa valserver i kedjan genom att skicka falska röstmeddelanden, och det kan vara svårt att skydda hundraprocentigt emot detta. Detta får några konsekvenser.
Det kan räcka med att ta över 3 valservrar, för att sedan manipulera upp till ytterligare 1-3 servrar, vilket ger kontroll över 4-6 valservrar. Kontroll över 5-6 valservrar kan ta över hela valsystemet, men samtidigt kommer alla att inse att något är fel om valservrarna inte räknar lika. Man kan då börja byta ut/flytta om valservrar slumpmässigt tills problemen försvinner.
I detta fall skulle man kunna byta ut samtliga valservrar, och polisen skulle kunna konfiskera samtliga gamla valservrar för att räkna ut vem som har hackat systemet. Fast detta ger teoretiskt polisen möjlighet att röja valhemligheten vilket inte är så bra.
Man kan tänka sig olika metoder att lista ut vilka valservrar som konspirerar. Men det är lite invecklat och kräver vissa ytterligare förutsättningar. Till exempel så har de konspirerande valservrarna en nackdel, i och med att de inte kan matcha personers identitet i två valservrar som ska manipuleras, och i dessa fall kan det möjligen bli svårt för konspiratörerna att få deras manipulerade servrar att räkna lika. Om medborgarnas valklienter ligger online och ständigt skickar meddelanden till valsystemet så kan det faktiskt försvåra konspiratörernas möjlighet att få deras manipulerade servrar att räkna lika, men det kan vara opraktiskt.
För att ta över systemet på ett sätt som inte märks genom manipulation av nästföljande valserver, krävs kontroll över minst 5 valservrar, som ligger på lämpliga positioner i ringen, det vill säga varannan. Men återigen, man kan försöka skapa hinder som gör det svårare, om än icke omöjligt, att få de manipulerade servrarna att räkna lika.
För övrigt så behövs 3 eller fler ytterligare servrar som har till uppgift att skicka ut medborgarnas röstpaket till valservrarna i en slumpmässig ordning så att valservrarna inte kan lista ut varandras anonymiseringsfunktion genom vilken tid som olika paket anländer. Men dessa servrar blir redundanta, och det räcker om en fungerar som den ska. Medborgarens dator kan också gå förbi dessa servrar vid behov, men det kräver att medborgarens dator är online en längre tid för att kunna skicka röstpaketen utspritt i tiden.
Kanske denna lösning ändå ser ut som en ganska bra kompromiss. Det ger hyfsat säker valhemlighet, och ganska stark röstsäkerhet. Det är viktigt att skapa fysiska och sociala skyddstrukturer runt dessa valservrar som gör det osannolikt att 2 eller 3 av dessa 9 valservrar ska kunna samarbeta i en komplott.
/R
[quote="joasi"]@robwe
Från det ena till det andra, skulle du kunna tänka dig att skriva avsnittet om Valsystemet i RDD-handboken? (http://wiki.sobr.se/tiki-index.php?page=Handbok+f%C3%B6r+representativ+direktdemokrati). Tror du kanske har tänkt mer på detta än någon annan? Det är bara att skapa en användare och skriva i så fall. Jag tänker t ex på diskussionen vi förde för länge sedan om redundans genom oberoende kommunicerande servrar, användning av kryptering, det du skrev om nyligen ang. kommunikation kring förslag, vilken funktionalitet som bör tillhandahållas i övrigt, tillgänglighet via internet, bibliotek etc. Kanske 50 rader vore lagom :-)[/quote]
Japp, får tänka lite på saken. För några månader sedan så kom jag förresten på en förbättrad kompromiss vad gäller valhemlighet/röstsäkerhet. Kolla in det här:
[quote]Eller förresten, jag tittade lite med nya ögon på min gamla ring-algoritm igår. Det är förvisso fortfarande sant att det finns en inneboende motsättning mellan säker röstning och säker valhemlighet. Men man kan göra en lite smidigare kompromiss där valhemligheten får ett betydligt bättre skydd, utan att det kostar så mycket för röstsäkerheten. Tricket är att man bara anonymiserar ett steg, men har en ring som är betydligt större. Här är ett exempel på vad jag menar:
Modell: "9-2 Ring":
Man har en ring med 9 valservrar S1...S9. När medborgaren M ska rösta med rösten R, så skapar dennes klient nio stycken krypterade meddelanden enligt följande modell:
Sn(M, Snext(R)) (om n<9, next = n+1, annars next = 1, för att knyta ihop ringen)
S(Meddelande) är ett meddelande som är krypterad på ett sätt så att bara servern S kan läsa (RSA kryptering).
Sedan skickas vart och ett av dessa meddelanden till respektive server som det är krypterat för (det yttersta paketet).
Var och en av dessa servrar har en anonymiseringsfunktion A1... A9 som mappar om personnummer till andra godtyckliga personnummer.
När meddelandet tagits emot hos en server, så skickas följande meddelande iväg till nästa server i cirkeln, men identiteten hos den som röstade har förvrängts:
Snext(A1(M), Snext(R))
Snext kan då packa upp och läsa rösten, men identiteten på användaren är dold. Detta system får följande egenskaper:
Det krävs två valservrar i rad som samarbetar för att röja någons valhemlighet. Detta betyder att det inte finns någon databas någonstans där en tekniker skulle kunna hämta ut valhemligheter. För det krävs att man har data från två valservrar.
Varje enskild valserver kan fejka sin rösträkning, men detta upptäcks eftersom det skiljer mellan de andra servrarna. Man kan använda majoriteten av valservrarnas resultat, som slutgiltigt resultat, och det krävs minst 5 konspirerande valservrar för att ta över valsystemet på detta sätt.
Varje enskild valserver kan försöka manipulera röst räkningen hos nästa valserver i kedjan genom att skicka falska röstmeddelanden, och det kan vara svårt att skydda hundraprocentigt emot detta. Detta får några konsekvenser.
Det kan räcka med att ta över 3 valservrar, för att sedan manipulera upp till ytterligare 1-3 servrar, vilket ger kontroll över 4-6 valservrar. Kontroll över 5-6 valservrar kan ta över hela valsystemet, men samtidigt kommer alla att inse att något är fel om valservrarna inte räknar lika. Man kan då börja byta ut/flytta om valservrar slumpmässigt tills problemen försvinner.
I detta fall skulle man kunna byta ut samtliga valservrar, och polisen skulle kunna konfiskera samtliga gamla valservrar för att räkna ut vem som har hackat systemet. Fast detta ger teoretiskt polisen möjlighet att röja valhemligheten vilket inte är så bra.
Man kan tänka sig olika metoder att lista ut vilka valservrar som konspirerar. Men det är lite invecklat och kräver vissa ytterligare förutsättningar. Till exempel så har de konspirerande valservrarna en nackdel, i och med att de inte kan matcha personers identitet i två valservrar som ska manipuleras, och i dessa fall kan det möjligen bli svårt för konspiratörerna att få deras manipulerade servrar att räkna lika. Om medborgarnas valklienter ligger online och ständigt skickar meddelanden till valsystemet så kan det faktiskt försvåra konspiratörernas möjlighet att få deras manipulerade servrar att räkna lika, men det kan vara opraktiskt.
För att ta över systemet på ett sätt som inte märks genom manipulation av nästföljande valserver, krävs kontroll över minst 5 valservrar, som ligger på lämpliga positioner i ringen, det vill säga varannan. Men återigen, man kan försöka skapa hinder som gör det svårare, om än icke omöjligt, att få de manipulerade servrarna att räkna lika.
För övrigt så behövs 3 eller fler ytterligare servrar som har till uppgift att skicka ut medborgarnas röstpaket till valservrarna i en slumpmässig ordning så att valservrarna inte kan lista ut varandras anonymiseringsfunktion genom vilken tid som olika paket anländer. Men dessa servrar blir redundanta, och det räcker om en fungerar som den ska. Medborgarens dator kan också gå förbi dessa servrar vid behov, men det kräver att medborgarens dator är online en längre tid för att kunna skicka röstpaketen utspritt i tiden.
Kanske denna lösning ändå ser ut som en ganska bra kompromiss. Det ger hyfsat säker valhemlighet, och ganska stark röstsäkerhet. Det är viktigt att skapa fysiska och sociala skyddstrukturer runt dessa valservrar som gör det osannolikt att 2 eller 3 av dessa 9 valservrar ska kunna samarbeta i en komplott.
/R
[/quote]