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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
python-ecdsa — firma/verifica ECDSA in pure-python e accordo di chiave ECDH | Kitploit
Strumenti/GitHubGitHub/tlsfuzzer/python-ecdsa
Strumenti di Crittografia/DecrittografiaCrittografiaUtilità e FrameworkAutenticazioneApprendimento e Formazione
GitHubtlsfuzzer/python-ecdsa

python-ecdsa

firma/verifica ECDSA in pure-python e accordo di chiave ECDH

Vedi Repository
975342183 mesi 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

ECDSA ed ECDH in puro Python

GitHub CI Documentation Status Coverage Status condition coverage mutation score CodeQL Latest Version Code style: black

Questa è un'implementazione facile da usare di ECC (Elliptic Curve Cryptography) con supporto per ECDSA (Elliptic Curve Digital Signature Algorithm), EdDSA (Edwards-curve Digital Signature Algorithm) ed ECDH (Elliptic Curve Diffie-Hellman), implementata interamente in Python, rilasciata sotto la licenza MIT. Con questa libreria puoi creare rapidamente coppie di chiavi (chiave di firma e chiave di verifica), firmare messaggi e verificare le firme. Puoi anche concordare una chiave segreta condivisa basata su chiavi pubbliche scambiate. Le chiavi e le firme sono molto brevi, il che le rende facili da gestire e integrare in altri protocolli.

NOTA: questa libreria non dovrebbe essere usata in contesti di produzione; vedere Sicurezza per maggiori dettagli.

Funzionalità

Questa libreria fornisce generazione di chiavi, firma, verifica e derivazione di segreti condivisi per cinque curve NIST "Suite B" GF(p) (campo primo) molto diffuse, con lunghezze di chiave di 192, 224, 256, 384 e 521 bit. I "nomi brevi" di queste curve, come noti allo strumento OpenSSL (openssl ecparam -list_curves), sono: prime192v1, secp224r1, prime256v1, secp384r1 e secp521r1. Include la curva a 256 bit secp256k1 usata da Bitcoin. C'è anche il supporto per le varianti regolari (non twistate) delle curve Brainpool da 160 a 512 bit. I "nomi brevi" di queste curve sono: brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. Sono incluse anche alcune curve piccole dello standard SEC (principalmente per velocizzare i test della libreria), e cioè: secp112r1, secp112r2, secp128r1 e secp160r1. La generazione delle chiavi, la firma e la verifica sono supportate anche per le curve Ed25519 e Ed448. Non sono incluse altre curve, ma non è troppo difficile aggiungere il supporto per ulteriori curve su campi primi.

Dipendenze

Questa libreria usa solo Python e il pacchetto 'six'. È compatibile con Python 2.6, 2.7 e 3.6+. Supporta inoltre l'esecuzione su implementazioni alternative come pypy e pypy3.

Se gmpy2 o gmpy è installato, verranno usati per un'aritmetica più veloce. Uno dei due può essere installato dopo l'installazione di questa libreria, python-ecdsa ne rileverà la presenza all'avvio e li userà automaticamente. Su Python3 è preferibile usare gmpy2 per prestazioni ottimali.

Per eseguire i test di compatibilità con OpenSSL, lo strumento 'openssl' deve trovarsi nel tuo PATH. Questa versione è stata testata con successo con OpenSSL 0.9.8o, 1.0.0a, 1.0.2f, 1.1.1d e 3.0.1 (tra gli altri).

Installazione

Questa libreria è disponibile su PyPI; si consiglia di installarla usando pip:``` pip install ecdsa

Nel caso si desideri una maggiore performance e l'uso di codice nativo non sia un problema, è possibile specificare l'installazione insieme a `gmpy2`:```
pip install ecdsa[gmpy2]

oppure (opzione più lenta, legacy):``` pip install ecdsa[gmpy]

## Velocità

La tabella seguente mostra quanto tempo impiega questa libreria a generare coppie di chiavi
(`keygen`), a firmare dati (`sign`), a verificare tali firme (`verify`),
a derivare un segreto condiviso (`ecdh`), e
a verificare le firme senza precalcolo specifico della chiave (`no PC verify`).
Tutti questi valori sono in secondi.
Per comodità, vengono forniti anche gli inversi di tali valori:
quante chiavi al secondo possono essere generate (`keygen/s`), quante firme
possono essere create al secondo (`sign/s`), quante firme possono essere verificate
al secondo (`verify/s`), quanti segreti condivisi possono essere derivati al secondo
(`ecdh/s`), e quante firme senza precalcolo specifico della chiave
possono essere verificate al secondo (`no PC verify/s`). La dimensione della firma
grezza (generalmente il modo più piccolo
in cui una firma può essere codificata) è fornita anche nella colonna `siglen`.
Usa `tox -e speed` per generare questa tabella sul tuo computer.
Su un Intel Core i7 4790K @ 4.0GHz ottengo le seguenti prestazioni:```
                  siglen    keygen   keygen/s      sign     sign/s    verify   verify/s  no PC verify  no PC verify/s
        NIST192p:     48   0.00032s   3134.06   0.00033s   2985.53   0.00063s   1598.36       0.00129s         774.43
        NIST224p:     56   0.00040s   2469.24   0.00042s   2367.88   0.00081s   1233.41       0.00170s         586.66
        NIST256p:     64   0.00051s   1952.73   0.00054s   1867.80   0.00098s   1021.86       0.00212s         471.27
        NIST384p:     96   0.00107s    935.92   0.00111s    904.23   0.00203s    491.77       0.00446s         224.00
        NIST521p:    132   0.00210s    475.52   0.00215s    464.16   0.00398s    251.28       0.00874s         114.39
       SECP256k1:     64   0.00052s   1921.54   0.00054s   1847.49   0.00105s    948.68       0.00210s         477.01
 BRAINPOOLP160r1:     40   0.00025s   4003.88   0.00026s   3845.12   0.00053s   1893.93       0.00105s         949.92
 BRAINPOOLP192r1:     48   0.00033s   3043.97   0.00034s   2975.98   0.00063s   1581.50       0.00135s         742.29
 BRAINPOOLP224r1:     56   0.00041s   2436.44   0.00043s   2315.51   0.00078s   1278.49       0.00180s         556.16
 BRAINPOOLP256r1:     64   0.00053s   1892.49   0.00054s   1846.24   0.00114s    875.64       0.00229s         437.25
 BRAINPOOLP320r1:     80   0.00073s   1361.26   0.00076s   1309.25   0.00143s    699.29       0.00322s         310.49
 BRAINPOOLP384r1:     96   0.00107s    931.29   0.00111s    901.80   0.00230s    434.19       0.00476s         210.20
 BRAINPOOLP512r1:    128   0.00207s    483.41   0.00212s    471.42   0.00425s    235.43       0.00912s         109.61
       SECP112r1:     28   0.00015s   6672.53   0.00016s   6440.34   0.00031s   3265.41       0.00056s        1774.20
       SECP112r2:     28   0.00015s   6697.11   0.00015s   6479.98   0.00028s   3524.72       0.00058s        1716.16
       SECP128r1:     32   0.00018s   5497.65   0.00019s   5272.89   0.00036s   2747.39       0.00072s        1396.16
       SECP160r1:     42   0.00025s   3949.32   0.00026s   3894.45   0.00046s   2153.85       0.00102s         985.07
         Ed25519:     64   0.00076s   1324.48   0.00042s   2405.01   0.00109s    918.05       0.00344s         290.50
           Ed448:    114   0.00176s    569.53   0.00115s    870.94   0.00282s    355.04       0.01024s          97.69
Scarica lo strumento