diff options
Diffstat (limited to 'epare/countermeasures/results_sage.ipynb')
| -rw-r--r-- | epare/countermeasures/results_sage.ipynb | 30 |
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": { |
