Punchscan es un sistema de recuento de votos por escaneo óptico inventado por el criptógrafo David Chaum . Punchscan está diseñado para ofrecer integridad, privacidad y transparencia. El sistema es verificable por los votantes, proporciona un mecanismo de auditoría de extremo a extremo (E2E) y emite un recibo de votación a cada votante. El sistema ganó el gran premio en la Competencia de Sistemas de Votación Universitaria de 2007 .
El software informático que incorpora Punchscan es de código abierto ; el código fuente se publicó el 2 de noviembre de 2006 bajo una licencia BSD revisada . [1] Sin embargo, Punchscan es independiente del software; obtiene su seguridad de funciones criptográficas en lugar de depender de la seguridad del software como las máquinas de votación DRE . Por este motivo, Punchscan puede ejecutarse en sistemas operativos de código cerrado , como Microsoft Windows , y aún así mantener una integridad incondicional.
Desde entonces, el equipo de Punchscan, con colaboradores adicionales, ha desarrollado Scantegrity .
Una boleta de votación Punchscan tiene dos capas de papel. En la capa superior, los candidatos están enumerados con un símbolo o letra al lado de su nombre. Debajo de la lista de candidatos, hay una serie de agujeros redondos en la capa superior de la boleta. Dentro de los agujeros de la capa inferior, están impresos los símbolos correspondientes.
Para emitir un voto por un candidato, el votante debe localizar el orificio con el símbolo correspondiente al símbolo que se encuentra al lado del nombre del candidato. Este orificio se marca con un marcador de tinta estilo Bingo , que es intencionalmente más grande que el orificio. Luego, el votante separa la papeleta, elige la capa superior o inferior para conservarla como recibo y tritura la otra capa. El recibo se escanea en el centro de votación para su tabulación .
El orden de los símbolos junto a los nombres de los candidatos se genera aleatoriamente para cada papeleta, por lo que varía de una papeleta a otra. Lo mismo ocurre con el orden de los símbolos en los agujeros. Por este motivo, el recibo no contiene suficiente información para determinar por qué candidato se emitió el voto. Si se mantiene la capa superior, se desconoce el orden de los símbolos a través de los agujeros. Si se mantiene la capa inferior, se desconoce el orden de los símbolos junto a los nombres de los candidatos. Por lo tanto, el votante no puede demostrar a otra persona por quién votó, lo que evita la compra de votos o la intimidación de los votantes.
Como ejemplo, considere una elección de dos candidatos entre Coca-Cola y Pepsi , como se ilustra en el diagrama anterior. El orden de las letras junto a los nombres de los candidatos podría ser A y luego B, o B y luego A. Llamaremos a esto ordenamiento , y sea =0 para el primer ordenamiento y =1 para el segundo. Por lo tanto,
:orden de los símbolos junto a la lista de candidatos,
Del mismo modo podemos generalizar para otras partes de una boleta:
:orden de los símbolos a través de los agujeros,
:¿Qué agujero está marcado?
:resultado de la votación,
Tenga en cuenta que el orden de los nombres de los candidatos es fijo en todas las votaciones. El resultado de una votación se puede calcular directamente de la siguiente manera:
Sin embargo, cuando se tritura una capa de la papeleta, se destruyen o bien la o bien . Por lo tanto, no hay suficiente información para calcular a partir del recibo (que se escanea). Para calcular los resultados de las elecciones se utiliza una base de datos electrónica .
Antes de la elección, la base de datos se crea con una serie de columnas como tal. Cada fila de la base de datos representa una papeleta, y el orden en que se almacenan las papeletas en la base de datos se baraja (utilizando una clave criptográfica a la que cada candidato puede contribuir ). La primera columna, , tiene el orden barajado de los números de serie. contiene un flujo de bits pseudoaleatorio generado a partir de la clave, y actuará como un cifrado de flujo . almacenará un resultado intermedio. contiene un bit tal que:
El resultado de cada votación se almacenará en una columna separada, , donde se volverá a barajar el orden de las votaciones. Por lo tanto, contiene el número de fila en la columna donde se colocará el resultado.
Una vez ejecutada la elección y escaneados los valores, se calcula de la siguiente manera:
Y el resultado se calcula como,
Esto es equivalente a la ecuación 1,
La columna de resultados se publica y, dado que las papeletas se han barajado (dos veces), el orden de la columna de resultados no indica qué resultado corresponde a qué número de papeleta. Por lo tanto, la autoridad electoral no puede rastrear los votos hasta los números de serie.
Para una elección con candidatos, se sigue el procedimiento anterior utilizando ecuaciones módulo -n.
El recibo de votación del votante no indica por qué candidato votó el votante y, por lo tanto, no es información secreta. Después de una elección, la autoridad electoral publicará una imagen de cada recibo en línea. El votante puede buscar su papeleta ingresando el número de serie y puede verificar que la información que posee la autoridad electoral coincide con su papeleta. De esta manera, el votante puede estar seguro de que su voto se emitió como se esperaba .
Cualquier votante o parte interesada también puede inspeccionar parte de la base de datos para asegurarse de que los resultados se calcularon correctamente. No pueden inspeccionar toda la base de datos, de lo contrario podrían vincular los votos a los números de serie de las papeletas. Sin embargo, la mitad de la base de datos se puede inspeccionar de forma segura sin violar la privacidad. Se realiza una elección aleatoria entre abrir o cerrar (esta elección puede derivarse de la clave secreta o de una fuente verdaderamente aleatoria , como los dados [2] o el mercado de valores [3] ). Este procedimiento permite al votante tener la confianza de que el conjunto de todas las papeletas se contabilizó como emitido .
Si todos los votos se cuentan como emitidos y emitidos como estaba previsto , entonces todos los votos se cuentan como estaba previsto . Por lo tanto, la integridad de la elección puede probarse con una probabilidad muy alta.
Para aumentar aún más la integridad de una elección Punchscan, se pueden tomar varias medidas adicionales para protegerse contra una autoridad electoral completamente corrupta.
Dado que , , y en la base de datos se generan de forma pseudoaleatoria, se pueden crear múltiples bases de datos con diferentes valores aleatorios para estas columnas. Cada base de datos es independiente de las demás, lo que permite abrir e inspeccionar la primera mitad de algunas de las bases de datos y la segunda mitad de otras. Cada base de datos debe producir el mismo recuento final. Por lo tanto, si una autoridad electoral manipulara la base de datos para distorsionar el recuento final, tendría que manipular cada una de las bases de datos. La probabilidad de que se descubra la manipulación en la auditoría aumenta con el número de bases de datos independientes.
Antes de una elección, la autoridad electoral imprime las papeletas y crea las bases de datos. Parte de este proceso de creación implica confirmar la información única contenida en cada papeleta y en las bases de datos. Esto se logra aplicando una función criptográfica unidireccional a la información. Aunque el resultado de esta función, el compromiso, se hace público, la información real que se confirma permanece sellada. Debido a que la función es unidireccional, es computacionalmente inviable determinar la información en la papeleta sellada dado solo su compromiso publicado públicamente.
Antes de una elección, se produce el doble de papeletas que las que se pretende utilizar en la elección. La mitad de estas papeletas se seleccionan al azar (o cada candidato puede elegir una fracción de las papeletas) y se abren. Las filas de la base de datos correspondientes a estas papeletas seleccionadas se pueden comprobar para garantizar que los cálculos sean correctos y no hayan sido alterados. Dado que la autoridad electoral no sabe a priori qué papeletas se seleccionarán, pasar esta auditoría significa que la base de datos está bien formada con una probabilidad muy alta. Además, las papeletas se pueden comprobar con sus compromisos para garantizar con una alta probabilidad que los compromisos de las papeletas sean correctos.