Hidden Fields Equations

sistema crittografico a chiave pubblica

Le Hidden Fields Equations (HFE), in italiano funzioni a campi nascosti, altrimenti note come funzioni botola (trapdoor functions in inglese), sono un sistema crittografico a chiave pubblica presentato per la prima volta all'Eurocrypt, nel 1996, dal francese Jacques Patarin, il quale lo elaborò seguendo le idee preesistenti nel sistema di Matsumoto e Imai. Tale sistema è basato sull'utilizzo di polinomi in campi finiti dotati di diversa dimensione, in modo tale da mascherare la relazione tra chiave pubblica e chiave privata. La famiglia di sistemi crittografici HFE si basa sulla difficoltà nel trovare le soluzioni di un sistema a equazioni quadratiche multivariate (chiamato anche Problema MQ). Le HFE hanno trovato un campo applicativo anche nella costruzione di schemi per la firma digitale, come ad esempio Quartz and Sflash.[1]

Basi matematiche

modifica

Una delle nozioni principali da assimilare per comprendere in che modo le HFE funzionino è capire che per due estensioni di campo   e  , entrambe contenute nel campo base  , una delle due estensioni può interpretare un sistema a   polinomi multivariati in   variabili, contenuto in   e rappresentato dalla funzione  , utilizzando una base adatta di   su  . Nella quasi totalità delle applicazioni i polinomi sono quadratici, ovvero di grado 2.[2] Partiamo dalla tipologia più semplice di polinomi, chiamati monomi, e verrà mostrato in che modo questi conducono ai sistemi quadratici di equazioni.

Sia   un campo finito, dove   è una potenza di 2, e sia   un'estensione di campo. Sia   una base di   come spazio vettoriale di  . Sia   tale che   sia verificato per distinti valori di   e il massimo comune divisore (MCD) sia   e si prenda un elemento casuale  . Si rappresenti   rispetto alla base come  . Si definisca   attraverso

 

La condizione del MCD è equivalente al richiedere che la funzione   su   sia in corrispondenza uno a uno e che la sua inversa sia la funzione  , dove   rappresenta l'inverso moltiplicativo di  . Si scelgano due trasformazioni affini riservate, ovvero due matrici   invertibili, come   e   con le voci appartenenti a   e due vettori   e   di dimensione   su   e si definiscano   e   attraverso:

 

Sia   una matrice di trasformazioni lineari nella base   in modo che

 

per  . Si scrivano tutti gli elementi della basi in relazione alle basi stesse, ovvero:

 

per ogni  . Il sistema di   equazioni che è esplicito in   e quadratico in   può essere ottenuto dall'espansione della (1) e uguagliando a zero i coefficienti di  . Usando le relazioni affini nella (2) per rimpiazzare   con  , il sistema di   equazioni è lineare in   e di secondo grado in  . Applicando l'algebra lineare il sistema darà   equazioni esplicite, una per ogni   sotto forma di polinomi di secondo grado in  .[3]

Crittosistemi multivariati

modifica

L'idea di base della famiglia HFE, ciò che consente l'utilizzo di sistemi multivariati, è la costruzione della chiave privata a partire da un polinomio   in una sconosciuta incognita   e all'interno di un qualche campo finito   (normalmente il valore utilizzato è  ). Questo polinomio può essere facilmente invertito in  , ovvero è fattibile trovare le soluzioni all'equazione  , ovviamente è condizione necessaria che tali soluzioni esistano. La trasformazione privata o decriptazione e/o la firma digitale sono basate su questa inversione. Come spiegato sopra   può essere identificato con un sistema a   equazioni   a patto di utilizzare una base prestabilita. Per costruire il crittosistema il polinomio deve essere trasformato in modo tale che le informazioni pubbliche nascondano la struttura originale, evitando così delle possibili inversioni. Questo viene fatto visualizzando il campo finito   come uno spazio vettoriale in   e scegliendo due trasformazioni affini lineari   e  . La terzina   costituisce la chiave privata. Il polinomio privato   è definito in  .[1][4] La chiave pubblica è  . Qui sotto si vede il diagramma per l'MQ-trapdoor  nelle HFE

 

Polinomi HFE

modifica

Il polinomio privato   con grado   in   è un elemento di  . Se i termini del polinomio   hanno al massimo termini quadratici in  , allora questo manterrà le dimensioni del polinomio pubblico ridotte.[1] Nel caso in cui   sia costituito da monomi nella forma  , ossia con una doppia potenza di   come esponente, sia ha la forma base delle HFE, e quindi   è scelto come:

 

Il grado   del polinomio è anche conosciuto come parametro sicurezza e maggiore è il valore maggiore sarà la sicurezza dal momento che il risultante set di equazioni quadratiche assomiglia, all'aumentare di  , ad un set di equazioni scelto casualmente. Senza contare che un valore maggiore di   rallenta significativamente la decriptazione. Questo dipende dal fatto che   è un polinomio con grado di valore massimo uguale a  , ciò comporta che l'inverso di  , ossia  , può essere computato in   operazioni.

Crittografia e decrittografia

modifica

La chiave pubblica è data dagli   polinomi multivariati   in  . È quindi necessario trasferire il messaggio   da   per poterlo criptare, ossia si assume che   sia un vettore  . Per criptare il messaggio   si valutano tutti i   in  . Il testo cifrato risulta quindi  .

Per comprendere meglio la decriptazione la si esprima in termini di  . Si noti che questi non sono disponibili al mittente. Valutando i   del messaggio viene in primo luogo applicata  , che porta   come risultato. A questo punto   viene trasformato da   in modo da poter applicare il polinomio privato   che appartiene a   dando come risultato  . Di nuovo,   viene trasferito al vettore  . Come ultimo passo viene applicata la trasformazione   e l'output finale   risulta prodotto da  .

Per decriptare   i procedimenti sopra citati vengono eseguiti in ordine inverso. Ma questo è possibile solo se la chiave privata   è conosciuta. Il passo cruciale della decifrazione non è l'inversione di   e  , piuttosto il calcolo della soluzione di  . Dal momento che   non è necessariamente una biiezione, possono essere trovate più di una soluzione a questa inversione (esistono al più d soluzioni distinte   dal momento che   è un polinomio di grado  ). La ridondanza denotata   è aggiunta durante il primo passaggio al messaggio   in modo da poter selezionare il giusto   dal set di soluzioni  .[1][3][5] Il diagramma riportato sotto mostra lo schema base delle HFE per la criptazione

 

Variazioni delle HFE

modifica

Le Hidden Fields Equations hanno quattro variazioni di base, chiamate +, -, f e v ed è possibile combinarle tra di loro in diversi modi. I principi base che le differenziano sono i seguenti:

01. Il simbolo + indica che viene effettuato un mix lineare tra le equazioni pubbliche e alcune equazioni casuali.
02. Il simbolo - è dovuto ad Adi Shamir e il suo scopo è quello di rimuovere la ridondanza   dalle equazioni pubbliche.
03. Il simbolo f indica che alcune variabili d'ingresso   sono state fissate.
04. Il simbolo v più che indicare un qualche cambiamento definisce una struttura, talvolta notevolmente complessa, tale che l'inversa della funzione può essere calcolata solo se determinate variabili  , chiamate variabili aceto, sono state precedentemente fissate.

Le operazioni riportate sopra concorrono a preservare in una certa misura la cosiddetta solvibilità botola (trapdoor solvability in inglese) della funzione. Per chiarire questo aspetto basta sapere che una funzione botola è una funzione facilmente computabile in una direzione, ma difficile da calcolare nella direzione opposta (ossia trovare l'inversa) se non si conoscono determinate informazioni.

Le HFE- e le HFEv sono molto utili, e di conseguenza molto usate, nella creazione di schemi per la firma digitale dal momento che prevengono i rallentamenti nella generazione delle chiavi e garantiscono inoltre una maggiore sicurezza generale delle HFE. Per quanto riguarda la criptazione sia l'HFE- che l'HFEv portano ad un processo di decifratura sensibilmente più lento grazie alle loro peculiarità implementative. Entrambe hanno inoltre avuto un ruolo fondamentale nella creazione di Quartz.

L'HFE+ invece, sempre nell'ambito della criptazione, porta ad una situazione, in linea teorica, ottimale dal momento che il processo di decifrazione richiede la stessa quantità di tempo, anche se le chiavi pubbliche hanno più equazioni che variabili.[1][2]

Attacchi alle HFE

modifica

Esistono due famosi attacchi che sono stati portati di recente alle HFE:

01. L'attacco Shamir-Kipnis: recuperare la chiave privata

Il punto chiave di questo attacco è quello di recuperare la chiave privata sotto forma di polinomi univariati all'interno dell'estensione di campo  . Questa tipologia di attacco funziona esclusivamente se portato a delle HFE di base, mentre fallisce contro qualsiasi loro variazione.

02. L'attacco Faugere: Basi di Gröbner

L'idea dell'attacco di Faugere è quella di usare gli algoritmi veloci per calcolare una Base di Gröbner del sistema di equazioni polinomiali. Faugere, nel 2002, riuscì a violare le HFE in 96 ore. Dal 2003 Faugere e Joux lavorano insieme sulla sicurezza delle HFE.[1]

Bibliografia

modifica

Collegamenti esterni

modifica
  Portale Crittografia: accedi alle voci di Wikipedia che trattano di crittografia