How does the encryption of votes in the database work?
The current version CORE 2.5.0 encrypts each vote cast with a random AES128 key, and this is encrypted with the public key of the ballot box. Only during the counting is the private key of the ballot box used to restore the random AES keys and thus to decrypt the votes. RSA is used as the asymmetrical encryption method, although ECB/CBC/GCM is not used here because the AES key can be encrypted within an RSA ciphertext.
In all current versions of CORE 3.0, the ballot papers are encrypted in the voter’s browser before being stored in the ballot box. The encryption methods differ depending on the version: CORE 3.0 BASE and CORE 3.0 Live Voting use the Elliptic Curve Integrated Encryption Scheme (ECIES). CORE 3.0 VERIFIABLE, on the other hand, uses Elgamal encryption with zero knowledge proofs and signatures, which ensure that the election remains verifiable while maintaining voting secrecy.