diff options
| author | J08nY | 2025-09-24 15:30:34 +0200 |
|---|---|---|
| committer | J08nY | 2025-09-24 15:32:20 +0200 |
| commit | 6537aec6103d9506e6e3723193deb3d8743d315c (patch) | |
| tree | adcf7574b521bff146476dbae5d916e08acb1e3d | |
| parent | 2f5d0ec98fdf4ea22f979f2b5d5671006da557bc (diff) | |
| download | ECTester-6537aec6103d9506e6e3723193deb3d8743d315c.tar.gz ECTester-6537aec6103d9506e6e3723193deb3d8743d315c.tar.zst ECTester-6537aec6103d9506e6e3723193deb3d8743d315c.zip | |
| -rw-r--r-- | analysis/scalarmults/bruteforce.ipynb | 47 | ||||
| -rw-r--r-- | analysis/scalarmults/simulate.ipynb | 33 |
2 files changed, 75 insertions, 5 deletions
diff --git a/analysis/scalarmults/bruteforce.ipynb b/analysis/scalarmults/bruteforce.ipynb index b0f6b5b..daf2e1a 100644 --- a/analysis/scalarmults/bruteforce.ipynb +++ b/analysis/scalarmults/bruteforce.ipynb @@ -154,14 +154,15 @@ "metadata": {}, "outputs": [], "source": [ - "num_workers = 10\n", + "num_workers = 25\n", "splits = 10000\n", "bound = 2**32\n", + "other_secret = bytes.fromhex(\"c512b8387fb403241d0a6925ff76a2c476038532\")\n", "with TaskExecutor(max_workers=num_workers) as pool:\n", " for split in tqdm(split_ranges(bound, splits), desc=\"Submitting.\"):\n", " pool.submit_task(split,\n", " process_split,\n", - " split, params, pub, priv, base, pub92, secret)\n", + " split, params, pub, priv, base, pub92, other_secret)\n", " for split, future in tqdm(pool.as_completed(), desc=\"Computing secrets.\", total=len(pool.tasks)):\n", " if error := future.exception():\n", " print(\"Error!\", error)\n", @@ -179,6 +180,46 @@ "id": "0108cb80-e307-415d-9c94-095197fd9054", "metadata": {}, "outputs": [], + "source": [ + "res" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "698cf1fa-e817-4344-8b9c-8cb0d1f906d9", + "metadata": {}, + "outputs": [], + "source": [ + "res is None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d28cdd1b-624b-4eb9-b058-bed69f1c7b4b", + "metadata": {}, + "outputs": [], + "source": [ + "split" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d984483-f88a-44b8-aa60-d531a4d4255d", + "metadata": {}, + "outputs": [], + "source": [ + "future" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6dbda05e-78da-4cdc-91e6-b02c3a7ac799", + "metadata": {}, + "outputs": [], "source": [] } ], @@ -198,7 +239,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.5" + "version": "3.12.3" } }, "nbformat": 4, diff --git a/analysis/scalarmults/simulate.ipynb b/analysis/scalarmults/simulate.ipynb index 47049f2..d402549 100644 --- a/analysis/scalarmults/simulate.ipynb +++ b/analysis/scalarmults/simulate.ipynb @@ -138,10 +138,17 @@ "\n", "use_init = True\n", "use_multiply = True\n", +<<<<<<< HEAD "\n", "num_workers = 30\n", "samples = 1000\n", "\n", +======= + "params = get_params(category, curve, \"projective\")\n", + "num_workers = 30\n", + "bits = params.order.bit_length()\n", + "samples = 1000\n", +>>>>>>> 6a6ef6a (Fixup some nits in simulate ntb.) "selected_mults = all_mults" ] }, @@ -191,11 +198,17 @@ " bits: int,\n", " fname: str,\n", " samples: int = 100,\n", +<<<<<<< HEAD " seed: bytes | None = None) -> str:\n", " \"\"\"\n", " Like the `simulate_multiples` function above, but stores the pickled output directly\n", " into a file named `fname`.\n", " \"\"\"\n", +======= + " use_init: bool = True,\n", + " use_multiply: bool = True,\n", + " seed: bytes | None = None) -> MultResults:\n", +>>>>>>> 6a6ef6a (Fixup some nits in simulate ntb.) " results = []\n", " if seed is not None:\n", " random.seed(seed)\n", @@ -209,7 +222,11 @@ " scalars = [one for _ in range(samples)]\n", "\n", " for scalar in scalars:\n", +<<<<<<< HEAD " results.append(multiple_graph(scalar, params, mult.klass, mult.partial))\n", +======= + " results.append(multiple_graph(scalar, params, mult.klass, mult.partial, use_init, use_multiply))\n", +>>>>>>> 6a6ef6a (Fixup some nits in simulate ntb.) " result = MultResults(results, samples)\n", " with open(fname, \"wb\") as f:\n", " pickle.dump((mult, result), f)\n", @@ -318,10 +335,15 @@ " for i, mult in enumerate(all_mults_with_ctr):\n", " pool.submit_task(mult,\n", " simulate_multiples_direct,\n", +<<<<<<< HEAD " mult, params, bits, tmp_path / f\"{i}.pickle\", samples, seed=chunk_id)\n", " with open(f\"multiples_{bits}_chunk{chunk_id}.pickle\",\"wb\") as h:\n", +======= + " mult, params, bits, tmp_path / f\"{i}.pickle\", samples, seed=chunk_id, use_init=use_init, use_multiply=use_multiply)\n", + " with open(f\"multiples_{bits}_{'init' if use_init else 'noinit'}_{'mult' if use_multiply else 'nomult'}_chunk{chunk_id}.pickle\",\"wb\") as h:\n", +>>>>>>> 6a6ef6a (Fixup some nits in simulate ntb.) " for mult, future in tqdm(pool.as_completed(), desc=\"Computing multiple graphs.\", total=len(pool.tasks)):\n", - " print(f\"Got {mult}.\")\n", + " #print(f\"Got {mult}.\")\n", " if error := future.exception():\n", " print(\"Error!\", error)\n", " continue\n", @@ -356,7 +378,14 @@ "with TaskExecutor(max_workers=num_workers, initializer=silence) as pool:\n", " for in_fname in tqdm(glob.glob(f\"multiples_{bits}_chunk*.pickle\"), desc=\"Processing chunks\", smoothing=0):\n", " \n", +<<<<<<< HEAD " match = re.match(\"multiples_(?P<bits>[0-9]+)_chunk(?P<id>[0-9a-f]+).pickle\", in_fname)\n", +======= + " match = re.match(\"multiples_(?P<bits>[0-9]+)_(?P<init>(?:no)?init)_(?P<mult>(?:no)?mult)_chunk(?P<id>[0-9a-f]+).pickle\", in_fname)\n", + " bits = int(match.group(\"bits\"))\n", + " use_init = match.group(\"init\")\n", + " use_multiply = match.group(\"mult\")\n", +>>>>>>> 6a6ef6a (Fixup some nits in simulate ntb.) " chunk_id = match.group(\"id\")\n", " out_fname = f\"probs_{bits}_{'i' if use_init else 'ni'}_{'m' if use_multiply else 'nm'}_chunk{chunk_id}.pickle\"\n", "\n", @@ -542,7 +571,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.5" + "version": "3.12.3" } }, "nbformat": 4, |
