aboutsummaryrefslogtreecommitdiff
path: root/epare/countermeasures/results_sage.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'epare/countermeasures/results_sage.ipynb')
-rw-r--r--epare/countermeasures/results_sage.ipynb30
1 files changed, 19 insertions, 11 deletions
diff --git a/epare/countermeasures/results_sage.ipynb b/epare/countermeasures/results_sage.ipynb
index a6384a0..92df739 100644
--- a/epare/countermeasures/results_sage.ipynb
+++ b/epare/countermeasures/results_sage.ipynb
@@ -149,7 +149,7 @@
" values = {ZZ((nonceG+i*nG)[0])%self.n:i for i in range(3)}\n",
" if r in values:\n",
" counts[nonce%3][values[r]]+=1\n",
- " print(nonce%2,values[r])\n",
+ " # print(nonce%2,values[r])\n",
" else:\n",
" others+=1\n",
" for kmod,cnts in counts.items():\n",
@@ -350,8 +350,9 @@
" if ((dp-scalar)%self.real_n)%(self.n-self.real_n)==0:\n",
" mask = ZZ(((dp-scalar)%self.real_n)/(self.n-self.real_n))\n",
" print(f\"Mask has {mask.nbits()} bits ({mask}), {scalar}, {dp}\")\n",
+ " return\n",
" \n",
- " return ds\n",
+ " # return ds\n",
" print(\"No mask found\")\n",
" \n",
" \n",
@@ -361,7 +362,7 @@
" params = []\n",
" for line in sig_lines[:N]:\n",
" nonce = int(line[\"nonce\"],16)\n",
- " print(nonce)\n",
+ " # print(nonce)\n",
" r, s = line[\"signature\"]\n",
" r = r%self.n\n",
" candidates = []\n",
@@ -373,7 +374,7 @@
" r+=self.n\n",
" ds = self.compute_mask(nonce,candidates,self.gen)\n",
" params.append((nonce,rss,ds))\n",
- " return params\n",
+ " # return params\n",
" print()\n",
" \n",
"\n",
@@ -381,7 +382,7 @@
" def recover_keygen(self,card, N=3):\n",
" self.print_card_name(card)\n",
" keygen_lines = self.load_csv_keygens(card,\"keygen\")\n",
- " for line in keygen_lines:\n",
+ " for line in keygen_lines[:N]:\n",
" pubW,privS = line[\"point\"],line[\"key\"]\n",
" pubWx,pubWy = pubW[2:][:len(pubW)//2-1],pubW[2:][len(pubW)//2-1:]\n",
" pubWx,pubWy,privS = map(lambda x: int(x,16),[pubWx,pubWy,privS])\n",
@@ -394,10 +395,9 @@
" def recover_ecdh_plain(self,card, N = 3):\n",
" self.print_card_name(card)\n",
" secret_lines = self.load_csv_ecdhs(card,\"ecdh_randomkey\")\n",
- " for line in secret_lines:\n",
+ " for line in secret_lines[:N]:\n",
" privS,secret = line[\"key\"],line[\"secret\"]\n",
" secret,privS = map(lambda x: int(x,16),[secret,privS])\n",
- " print(privS%2)\n",
" R = self.curve.lift_x(self.curve.base_field()(secret))\n",
" self.compute_mask(privS,[R],self.public) \n",
" print()\n",
@@ -407,7 +407,7 @@
" self.print_card_name(card)\n",
" secret_lines = self.load_csv_ecdhs(card,\"ecdh_plain_good_gen\")\n",
"\n",
- " for line in secret_lines:\n",
+ " for line in secret_lines[:N]:\n",
" privS,secret = line[\"key\"],line[\"secret\"]\n",
" secret,privS = map(lambda x: int(x,16),[secret,privS])\n",
" \n",
@@ -562,7 +562,7 @@
"outputs": [],
"source": [
"for card in cards:\n",
- " params = gsrmask.recover_keygen(card,N=10)"
+ " params = gsrmask.recover_keygen(card,N=1)"
]
},
{
@@ -573,7 +573,7 @@
"outputs": [],
"source": [
"for card in cards:\n",
- " params = gsrmask.recover_ecdsa(card,N=10)"
+ " params = gsrmask.recover_ecdsa(card,N=1)"
]
},
{
@@ -584,8 +584,16 @@
"outputs": [],
"source": [
"for card in cards:\n",
- " params = gsrmask.recover_ecdh_plain(card,N=10)"
+ " params = gsrmask.recover_ecdh_plain(card,N=1)"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "adba1ff5-4235-4084-b1dd-ab206903bb24",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {