Public Key Cipher
Lo scambio delle chiavi è stato negli ultimi 40 anni uno dei più grandi problemi della crittografia e dei sistemi d’autenticazione. E, fino ad oggi, le uniche soluzioni note erano essenzialmente quelle di Diffie-HellMan (i padri dello Scambio a Chiave Pubblica) che però sono vulnerabili al MITM (Man in the Middle) le curve ellittiche, e RSA(Rivest-Shamir-Adleman) che però richiede lìutilizzo di chiavi molto grandi (e quindi computazionalmente, costose) e numeri primi molto grandi, che però l’utente non può generare da solo.
Crypt-Security in risposta a questi problemi ha sviluppato l’algoritmo QP-KeX come algoritmo per lo scambio delle chiavi, i suoi vantaggi competitivi sono la possibilità di generare chiavi lunghe a piacere in tempi ridottissimi anche su dispositivi portatili (per vedere un grafico comparativo delle performance rispetto ai principali algoritmi vedere la pagina CryptoMobile), l’elevata sicurezza anche per chiavi di lunghezza standard, una grande semplicità d’uso, e può essere in oltre utilizzato come generatore di chiavi per l’algoritmo QP-DYN (come accade nel nostro plugin per outlook).
Il CSEC QP-KEX (Key Exchange o Key Agreement) – Algoritmo di Scambio Chiavi
L’algoritmo CSEC QP-KEX introduce un metodo crittografico innovativo per costruire una chiave crittografica condivisa (SSK) tra due interlocutori mediante combinazione di informazioni scambiate pubblicamente e di informazioni segrete che ciascuno dei due non condivide con l’altro (algoritmo asimmetrico).
Attualmente esistono diversi metodi crittografici per lo scambio di chiavi che tuttavia sono basati su strutture matematiche estremamente rigide e pongono seri limiti alla possibilità di varianti dello schema principale.
Lo schema di algoritmo CSEC QP-KEX permette invece di costruire una classe di algoritmi crittografici che supera gli inconvenienti delle tecniche precedenti, garantendo allo stesso tempo un livello di sicurezza notevolmente superiore a quello attualmente conseguibile.
Lo schema CSEC QP-KEX (in particolare nella sua variante a doppia parametrizzazione) presenta numerose e profonde differenze rispetto agli algoritmi già noti per lo scambio pubblico di chiavi crittografiche (key agreement). In particolare uno dei due interlocutori ha non una, ma più chiavi pubbliche e l’altro usa alcune di queste per calcolare la sua chiave pubblica e le altre chiavi pubbliche dell’interlocutore per calcolare la sua copia della SSK. Per questo motivo gli algoritmi della presente classe potrebbero essere definiti algoritmi fortemente asimmetrici.
Tale suddivisione delle informazioni pubbliche consente di introdurre, nella costruzione dell’algoritmo, delle funzioni arbitrarie, aumentando di ordini di grandezza
- sia il livello di sicurezza dell’algoritmo
- sia la possibilità di costruire varianti inequivalenti dello schema di base
Alcune di queste varianti sono state implementate in software con risultati molto soddisfacenti dal punto di vista delle prestazioni.
Anche nel caso del CSEC QP-KEX il metodo è stato, e continua ad essere, presentato in convegni internazionali ed in corsi di lezioni tenuti in vari paesi, ed è oggetto di pubblicazioni presenti in rete.
Le caratteristiche fortemente innovative della classe di algoritmi CSEC QP-KEX lo rendono un candidato naturale allo status di nuovo standard nella categoria degli algoritmi di scambio pubblico di chiavi crittografiche.
Scenari di utilizzo del CSEC QP-KEX
CSEC QP-KEX consente la generazione di chiavi di sessione in tempi brevissimi a partire da pochi dati conosciuti.
I suoi punti di forza sono
- la velocità di esecuzione
- la massima personalizzazione
- la facilità di generazione, di scambio e di condivisione di chiavi di sessione
CSEC QP-KEX può essere naturalmente accoppiato con CSEC QP-DYN per realizzare un algoritmo ibrido per lo scambio di dati in modo innovativo, sicuro e veloce
La potenza, la flessibilità e la semplicità d’uso sono il punto di forza di QP-Kex e degli altri algoritmi di scambio chiavi da noi realizzati, e riteniamo che siano ottimi candidati come nuovi standard internazionali in questo campo.
QP-Kex è stato sviluppato in C++ per poter girare indifferentemente su Linux e su Windows, e riscritto in JavaMe per le applicazioni su dispositivi portatili.