Прочете също така


Вероятност за засичане на измама при контролното преброяване на машинния вот


26.11.2022
Автори: Никола Тулечки   Лаура Толоси  

Обобщение

Колко избирателни секции трябва да се проверят за да се засече скрита в кода на машините манипулация на вота?

Докато стилът на този пост е шеговит, той сериозно илюстрира как дори и минимален извадков контрол на бележките от машините за гласуване би засякъл скрит в софтуеъра опит за манипулация на вота

Нека проиграем следния сценарии: Тео има неограничен достъп до кода на машините за гласуване. Достатъчно сръчен е да може да го пренапише така, че той да прави каквото си поиска. Твърдо решен е да се възползва злонамерено от този свой достъп, за да подобри резултата на любимата си партия (ЛБ).

Тео ще добави няколко реда код, които да “бутнат” резултата на ЛБ с десет процента. За да стане това, всяка машина ще трябва да подмени автоматично вота на всеки десети гласоподавател и вместо за партията за която е гласувал, да запише един глас повече за ЛБ.

Дотук добре, но Тео знае, че освен записа в паметта, машината разпечатва и бележка,
която гласоподавателят пуска в кутията. Ако той я погледне и на нея пише ЛБ вместо партията за която наистина е гласувал, той ще се оплаче на членовете на комисията и планът за подмяна ще бъде провален.

Затова Тео решава да инструктира машината да разпечата бележка с истинския вот на избирателя, но да запише глас за ЛБ в паметта. Така гласоподавателят бива успешно заблуден и за да бъде засечена измамата, трябва да се сравнят бележките в кутията с данните в паметта на машината.

Тео знае, че такава проверка няма да се направи във всички секции и затова решава да сметне каква е вероятността, при проверка на даден брой секции на случаен принцип неговата манипулация да бъде засечена. Очевидно ако всяка машина е компрометирана вероятността е 100%, защото дори една секция да бъде проверена, разликата между протокола и бележките ще бъде засечена.

Дали обаче няма някакъв начин да се добави едно условие в кода, което да намали броя на машините, в които има подмяна, така че вероятността да бъдат засечени при проверка да е приемливо малка.

Тео разбира се е много добър по математика (както и в търсенето в Гугъл). Той бързо намира отговор на въпроса си в този пост в StackExchange.

Тео научава че, дистрибуцията на определени избрани елементи (в случая компрометирани секции) в случайна извадка без повтаряне е хипергеометрична. Тя може да се сметне със следното уравнение

$\mathsf P(W=k) = \dfrac{\dbinom{K}{k}~\dbinom{N-K}{n-k}}{\dbinom{N}{n}} \qquad \Big[0\leq k\leq \min(K, n) \leq \max(K, n) \leq N\Big]$

Където:

  • $N$ e популацията (общ брой секции = 13000)
  • $K$ е общия брой избрани елементи (компрометирани секции)
  • $n$ e размера на извадката
  • $k$ e броя избрани елементи в извадката, (в случая 0)
  • $P(W=k)$ е вероятността да има $k$ елемента в извадката

На Тео даже не му се налага да го смята на ръка. Той може да използва този хипергеометричен калкулатор, за да сметне различните сценарии:

Тео обича риска и решава да провери при колко машини вероятността да бъде заловен е по-малка от тази да не бъде заловен или $P(W=k)>0.5$.

Ето резултатите:

  • При 10% извадков контрол, $K=1300$ максималния брой секции които може да компрометира е 6
  • При 5% извадков контрол, $K=650$ максималния брой секции е 14
  • Дори и само 1% от секциите да се проверяват $K=130$, ако Tео компрометира повече от 70 секции, вероятността да го хванат е по-голяма от 50%

Тео въобще не е доволен от резултата и бързо си дава сметка, че е безсмислено да се занимава повече с това.