Undergraduate dissertation
Go to file
2023-08-20 11:03:09 +01:00
static update copyright notice on lzstring 2023-05-02 14:39:05 +01:00
templates removed cryptojs from requirements 2023-05-02 14:19:15 +01:00
whitepaper Remove embedded tikzpictures 2023-08-20 11:03:09 +01:00
.gitignore Update gitignore 2022-12-29 14:11:18 +00:00
.prettierrc.toml Announce player joins 2022-12-29 14:36:55 +00:00
app.py Show the players 2023-01-14 16:59:11 +00:00
LICENSE update license 2023-05-01 15:38:45 +01:00
README.md done???????????????? 2023-05-01 14:46:49 +01:00
requirements.txt Add some stuff 2023-02-10 15:47:21 +00:00
risk.pdf Add some stuff 2023-02-10 15:47:21 +00:00

Riskless

Undergraduate dissertation

Running the demo

  1. pip install -r requirements.txt
  2. python3 app.py
  3. Navigate browser to http://localhost:5000

Running the benchmarks

  1. Press F12
  2. Type the name of the benchmark to run:
    • RSABench
    • PaillierBench
    • ZeroProofBench
    • ZeroProofVerifierBench
    • ZeroProofSizeBench
    • Protocol4Bench
    • Protocol4VerifierBench
    • Protocol4SizeBench
  3. Wait for results to output in milliseconds

Changing the key size

The key size is determined by the variable KEY_SIZE in random_primes.js. This variable dictates the size of each prime used in the modulus, so the total key size is twice this value. Recommend selecting one of 512, 1024, or 2048. In fact, I recommend selecting 512 if you want the program to run in less than 3-5 business days.

Key generation will still take some time. The browser may tell you the tab is not responding, but just wait and it'll be fine eventually. If not, short-circuit the generate_safe_prime function in random_primes.js to just return a normal prime (there is a comment on the conditional that needs to be removed).

Playing the game

  1. Open the game in two separate tabs
  2. Press "Ready" on both tabs once they are fully loaded

Implementation bugs

  • When attacking, the units are not subtracted from the attacking region correctly.
  • Some proofs are not verified.
    • Proof of the ciphertext used when claiming.
    • Proof of the ciphertext used when capturing.
  • The win condition is not checked.
  • Not thoroughly tested on over 2 players.