Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ECC_Attacks — Attacchi noti alla crittografia a curve ellittiche | Kitploit
Strumenti/GitHubGitHub/elikaski/ecc_attacks
Analisi delle VulnerabilitàCrittografiaApprendimento e Formazione
GitHubelikaski/ecc_attacks

ECC_Attacks

Attacchi noti alla crittografia a curve ellittiche

Vedi Repository
61343231 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Attacchi Noti sulla Crittografia a Curve Ellittiche

  • Introduzione
  • Introduzione alle Curve Ellittiche
  • Curve Ellittiche nel Contesto della Crittografia
  • Attacchi ECC

Attacchi ECDH

  • L'ordine del generatore è troppo piccolo
  • L'ordine del generatore è un numero liscio
  • L'ordine del generatore è quasi un numero liscio e la chiave privata è piccola
  • Non verificare che un punto sia sulla curva
  • La curva è singolare
  • La curva è supersingolare
  • La curva è anomala

Attacchi ECDSA

  • Non applicare l'hash al messaggio prima di firmarlo
  • Riutilizzare lo stesso valore di k in firme diverse
  • Generare valori di k in modo non sicuro
  • Non verificare che il generatore sia valido

Conclusione

  • Panoramica degli attacchi ECDH
  • Panoramica degli attacchi ECDSA
  • Protezione contro questi attacchi
  • Riferimenti

Introduzione

Negli ultimi anni l'approccio della crittografia a curve ellittiche è diventato popolare grazie alla sua alta efficienza e alla sua forte sicurezza. Lo scopo di questo articolo è presentare questo argomento in un modo relativamente più chiaro rispetto a quanto esiste oggi su internet.

In questo articolo presenterò cosa sono le curve ellittiche, le operazioni di base che si possono eseguire su di esse e come possono essere usate in un contesto crittografico. La maggior parte di questo articolo consiste in esempi di attacchi noti su implementazioni errate o su usi scorretti di esse. Nel corso dell'articolo cerco di separare la spiegazione in una parte intuitiva e ad alto livello e una parte matematica che entra più nei dettagli. Il lettore è invitato a concentrarsi su quale delle due parti lo interessa in quel punto e a saltare le parti meno rilevanti.

Buona lettura!

Introduzione alle Curve Ellittiche

Una Curva Ellittica

In generale, una curva ellittica è una sorta di linea curva. Un esempio è la parabola, la cui equazione è della forma $𝑦 = 𝑎𝑥^2 + 𝑏𝑥 + 𝑐$ e appare così:

Parabola

Nel contesto della crittografia, è consuetudine usare curve ellittiche la cui equazione è della forma

$𝑦^2 = 𝑥^3 + 𝑎𝑥 + 𝑏$

Ad esempio, una curva ellittica corrispondente all'equazione $𝑦^2 = 𝑥^3 − 3𝑥 + 3$ appare così:

Curva ellittica semplice

L'equazione della curva definisce la relazione tra la coordinata 𝑥 di un punto sulla curva e la sua coordinata 𝑦. In un contesto crittografico, limitiamo 𝑥, 𝑦, 𝑎, 𝑏 a essere interi e limitiamo i calcoli a essere modulo un grande numero primo. Quindi l'equazione della curva ellittica è:

$𝑦^2 = 𝑥^3 + 𝑎𝑥 + 𝑏\ \ \ \ (mod\ 𝑝)$.

Questo significa che abbiamo un numero finito di punti sulla curva. In linguaggio matematico, la curva è definita su un campo finito di ordine 𝑝. Di conseguenza, ora non necessariamente ogni coordinata 𝑥 avrà un punto corrispondente sulla curva, perché può accadere che la coordinata 𝑦 corrispondente non sia un intero.

Punti sulla Curva

L'insieme dei punti sulla curva è costituito da coppie di interi (𝑥, 𝑦) che soddisfano l'equazione della curva. Oltre a questi punti, viene definito un altro punto speciale chiamato "Infinito", denotato con 𝒪. In linguaggio matematico, questo punto è l'elemento neutro dell'insieme dei punti sulla curva rispetto all'operazione di addizione, che definiremo nella prossima sezione. Il numero di punti sulla curva (incluso il punto 𝒪) è chiamato "ordine della curva".

Un'altra osservazione è che le curve ellittiche sono simmetriche rispetto all'asse X. Ciò significa che se il punto 𝑃 = (𝑥, 𝑦) è sulla curva, allora anche il punto −𝑃 = (𝑥, −𝑦) è sulla curva. In effetti, questi punti sono considerati "inversi" l'uno dell'altro (da qui la notazione −𝑃 per il secondo punto), e il risultato dell'operazione di addizione tra loro è definito come l'elemento neutro 𝒪.

Un teorema chiamato Teorema di Hasse fornisce una stima di #𝐸, l'ordine della curva, ed è dell'ordine di grandezza di Θ(𝑝). Più precisamente:

$𝑝 + 1 − 2\sqrt𝑝 ≤ 𝐸 ≤ 𝑝 + 1 + 2\sqrt𝑝$

Addizione di Punti

Dati due punti sulla curva, è possibile definire un'operazione di addizione tra di essi, che produce un terzo punto anch'esso sulla curva. Per trovare geometricamente questo punto, tracciamo una linea tra i due punti dati e la prolunghiamo fino a quando interseca la curva in un terzo punto. Questo punto viene riflesso rispetto all'asse 𝑋, e il punto risultante è definito come il risultato dell'addizione.

Ecco un diagramma che mostra come, dati i punti 𝑃 e 𝑄, si possa trovare il punto 𝑃 + 𝑄:

Addizione di punti

Una domanda che può sorgere da questa descrizione è: cosa succede se la linea tracciata tra i due punti non interseca di nuovo la curva? In questo caso si dice che la linea interseca la curva all'"infinito", e il risultato dell'addizione è il punto 𝒪. Nota che questo caso si verifica se la linea tracciata è verticale, cioè stiamo cercando di sommare un punto 𝑃 con il suo punto inverso, −𝑃:

Addizione di punti all'infinito

Da questo derivano due identità fondamentali. Per ogni punto 𝑃 vale che:

𝑃 + 𝒪 = 𝑃
𝑃 + (−𝑃) = 𝒪

Un'altra domanda che sorge dalla descrizione geometrica è: come si somma un punto a se stesso? Abbiamo visto che per sommare due punti diversi 𝑃 e 𝑄, tracciamo una linea tra loro e guardiamo il punto di intersezione del suo prolungamento con la curva. Intuitivamente, lasceremo 𝑃 costante e osserveremo la linea che si crea mentre spostiamo 𝑄 "sempre più vicino" a 𝑃, finché 𝑄 non si fonde con 𝑃. Quello che otterremo è una linea sempre più "tangente" alla curva nel punto 𝑃, ed è esattamente la linea che considereremo quando vogliamo sommare 𝑃 a se stesso:

Moltiplicazione di punti

Per sommare un punto 𝑃 a se stesso, tracciamo una tangente alla curva nel punto 𝑃 e la prolunghiamo finché non interseca la curva in un secondo punto. Questo punto viene riflesso rispetto all'asse 𝑋, e il punto risultante è definito come il risultato dell'addizione. È consuetudine indicare il risultato dell'addizione come 𝑃 + 𝑃 = 2𝑃. Di nuovo, se la tangente non interseca la curva in un secondo punto, si dice che interseca la curva all'"infinito", e il risultato dell'addizione in questo caso è il punto 𝒪.

Queste descrizioni geometriche visive illustrano bene il funzionamento dell'addizione di punti e ci aiutano a capirla. Ma come la calcoliamo effettivamente? Con equazioni matematiche, ovviamente!

Scarica lo strumento