2023-04-15 13:28:13 +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.
|
2023-04-21 08:50:20 +00:00
|
|
|
|
|
|
|
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
|
2023-04-24 13:20:44 +00:00
|
|
|
`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).
|
2023-04-21 14:03:15 +00:00
|
|
|
|
2023-05-01 13:44:31 +00:00
|
|
|
## Playing the game
|
2023-04-21 14:03:15 +00:00
|
|
|
|
|
|
|
1. Open the game in two separate tabs
|
|
|
|
2. Press "Ready" on both tabs once they are fully loaded
|
2023-05-01 13:44:31 +00:00
|
|
|
|
|
|
|
## 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.
|