aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2025-09-24 15:30:34 +0200
committerJ08nY2025-09-24 15:32:20 +0200
commit6537aec6103d9506e6e3723193deb3d8743d315c (patch)
treeadcf7574b521bff146476dbae5d916e08acb1e3d
parent2f5d0ec98fdf4ea22f979f2b5d5671006da557bc (diff)
downloadECTester-6537aec6103d9506e6e3723193deb3d8743d315c.tar.gz
ECTester-6537aec6103d9506e6e3723193deb3d8743d315c.tar.zst
ECTester-6537aec6103d9506e6e3723193deb3d8743d315c.zip
-rw-r--r--analysis/scalarmults/bruteforce.ipynb47
-rw-r--r--analysis/scalarmults/simulate.ipynb33
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,