Che cos'è Secret Sharing? - Lo schema di Shamir spiegato e perché è importante per la sicurezza dei dati

Secret Sharing: La tecnologia che alimenta l'fragmentiX (parte 1)

Introduzione: Cosa significa veramente Secret Sharing in crittografia

Nel campo della crittografia, pochi concetti hanno un nome così ingannevole come quello di "crittografia". secret sharing. A prima vista, potrebbe sembrare un cugino del più familiare segreto condiviso. Ma nonostante la formulazione simile, queste due idee hanno scopi molto diversi.

Un segreto condiviso è in genere un singolo valore noto a più parti, utilizzato per stabilire una comunicazione sicura. L'secret sharing è invece una tecnica per suddividere un segreto in più parti, o azioni, in modo che solo un sottoinsieme designato di tali azioni possa ricostruire il segreto originale. In particolare, nessuna singola azione rivela di per sé alcuna informazione sul segreto.

A differenza degli schemi di crittografia, che si basano su chiavi per bloccare e sbloccare i dati, l'secret sharing è un metodo crittografico senza chiavi, che elimina la necessità di un'unica entità fidata per controllare una chiave. Questo lo rende particolarmente potente in scenari in cui il controllo centralizzato è un problema e la resilienza contro i compromessi è fondamentale.

Il concetto è stato formalizzato alla fine degli anni '70 da Adi Shamir [1] e George Blakley. Da allora, l'secret sharing ha trovato applicazioni che vanno ben oltre l'archiviazione sicura: dalla salvaguardia dei codici di lancio nucleari e dei portafogli di criptovalute all'abilitazione del calcolo multi-party sicuro e dei sistemi di autenticazione a soglia.

Noi di fragmentiX sfruttiamo la potenza di secret sharing per costruire sistemi di archiviazione cloud sicuri e distribuiti, assicurando che i vostri dati rimangano protetti anche se parti del sistema si guastano o vengono compromesse. Nelle sezioni che seguono, esploreremo il funzionamento di secret sharing, a partire dal classico schema di Shamir nella prima parte di questo blog post, per poi immergerci nelle estensioni che lo rendono ancora più robusto e versatile in una seconda parte.

Secret Sharing di Shamir: un esempio intuitivo

Immaginate un istituto di ricerca medica che lavora a un trattamento medico rivoluzionario. La formula è un segreto strettamente custodito, non solo per motivi di proprietà intellettuale, ma anche per evitare fughe di notizie o usi impropri. Per proteggerlo, l'istituto decide di dividere la formula tra diversi ricercatori di fiducia situati in paesi diversi.

Ma non dividono semplicemente il documento in parti. Sarebbe rischioso, perché ogni pezzo potrebbe ancora contenere indizi. Invece, utilizzano l'Secret Sharing di Shamir, un metodo che affonda le sue radici nella crittografia a soglia, in cui un segreto viene suddiviso in n e una soglia predefinita k di tali azioni è necessario per ricostruirlo.

È importante notare che qualsiasi sottoinsieme di meno di k non rivela assolutamente nulla del segreto originale - un livello di protezione così forte che anche un avversario con una potenza di calcolo illimitata non può estrarre alcuna informazione da azioni insufficienti. Questo eccezionale livello di protezione rientra nella categoria delle sicurezza teorica dell'informazione (ITS). È lo stesso tipo di garanzia offerto dal One-Time Pad, l'esempio da manuale di crittografia infrangibile che raggiunge l'ITS se usato correttamente. Mentre il One-Time Pad è raramente praticabile a causa dei suoi severi requisiti, l'Secret Sharing di Shamir offre l'ITS anche in condizioni più flessibili, rendendolo adatto a una più ampia gamma di applicazioni reali. Inoltre, questo livello di sicurezza non è minacciato dai progressi della crittoanalisi o dell'informatica, compresi i computer quantistici.

Un'altra potente caratteristica: non importa quali azioni siano disponibili. Se l'istituto crea 10 azioni e fissa la soglia a 7, qualsiasi 7 di questi 10 ricercatori può riunirsi e ricostruire la formula segreta. Anche se 3 azioni vengono perse, il segreto rimane recuperabile. Questo rende lo schema di Shamir non solo sicuro, ma anche altamente tollerante ai guasti.

Questa flessibilità e tolleranza ai guasti rendono lo schema di Shamir ideale per i sistemi distribuiti sicuri, dove l'integrità e la disponibilità dei dati devono coesistere con una rigorosa riservatezza.

Spiegazione tecnica: La matematica dietro l'Secret Sharing di Shamir

Il cuore dell'Secret Sharing di Shamir è un'idea straordinariamente semplice: un polinomio di grado k1 è determinato in modo univoco da k punti distinti. Ad esempio, una retta (un polinomio di grado 1) può essere ricostruita da due punti distinti, mentre una parabola (grado 2) richiede tre punti. Questo principio costituisce la spina dorsale dello schema.

Per codificare un segreto, lo inseriamo come termine costante di un polinomio di grado altrimenti generato a caso k-1 su un campo finito. Per usare un'analogia visiva: si pensi al segreto come al punto in cui il grafico del polinomio interseca l'asse delle ordinate, cioè al valore del polinomio in corrispondenza del punto in cui il polinomio si trova. x=0. Valutiamo quindi questo polinomio a n punti distinti non nulli per produrre n azioni.

Di conseguenza, qualsiasi k di queste quote può essere utilizzato per ricostruire il polinomio originale e quindi il segreto utilizzando tecniche di interpolazione. Ma meno di k non rivelano assolutamente nulla. Non si tratta di una semplice difficoltà di calcolo, ma di una garanzia matematica.

Figura 1: Esempio di schema a 3 soglie su 4

Nella Figura 1 il segreto è la coordinata y del punto S in cui la parabola interseca l'asse delle ordinate. Quattro punti su una parabola rappresentano le quattro quote (A, B, C, D). Tre punti qualsiasi sono sufficienti per determinare in modo univoco il segreto. Due punti lasciano indeterminata la parabola e quindi il segreto. Si noti che in questo esempio semplificato visualizziamo un polinomio sul campo dei numeri reali invece che su un campo finito.

Passo dopo passo:

1. Definizione del segreto e dei parametri

  • Sia il segreto un numero in un campo finito (ad esempio un campo finito con 28 che possono rappresentare tutti i possibili valori di un byte).
  • Scegliere una soglia k (numero minimo di azioni necessarie per ricostruire il segreto).
  • Scegliere il numero totale di azioni n, dove nk.

2. Costruzione del polinomio

Per codificare il segreto, si costruisce un polinomio casuale f(x) di grado k1:

f(x)=a0+a1x+a2x2++ak-1xk-1

  • Il termine costante a0 è il segreto.
  • I coefficienti a1,a2,...,ak-1 sono scelti uniformemente a caso dal campo finito.
  • La casualità di questi coefficienti è fondamentale: garantisce che il polinomio sia imprevedibile e che lo schema raggiunga la sicurezza teorica dell'informazione.

3. Generazione di azioni

Ogni azione si è un punto del polinomio:

si=(xi, f(xi))

  • Scegliere valori distinti e non nulli x1,x2,...,xn nel campo finito.
  • Valutare il polinomio in corrispondenza di ogni xi per ottenere il corrispondente f(xi).

Queste coppie (xi,f(xi)) sono distribuite ai partecipanti. Ogni azione appare come un dato casuale e non rivela nulla del segreto, a meno che non venga combinata con un numero sufficiente di altre azioni.

4. Ricostruzione del segreto

Per recuperare il segreto a0, qualsiasi gruppo di k i partecipanti possono utilizzare le loro quote per ricostruire il segreto utilizzando Interpolazione di Lagrange:

a 0 = f ( x i ) j i x i x j - x i a_0 = somma f(x_i) prod da{ji} {{x_i} su {x_j - x_i}}

Proprietà di sicurezza

  • Sicurezza teorica dell'informazione: Qualsiasi gruppo con meno di k azioni non apprende nulla del segreto. Questo non è solo difficile dal punto di vista computazionale, è matematicamente impossibile.
  • Flessibilità della soglia: È possibile scegliere qualsiasi k e n per bilanciare sicurezza e tolleranza ai guasti.
  • Resilienza: Non importa quali azioni siano perse o non disponibili. Finché k Se rimangono azioni valide, il segreto può essere recuperato.

Conclusione: Perché l'Secret Sharing di Shamir è ancora importante oggi

L'Secret Sharing di Shamir dimostra come la matematica possa trasformare il modo in cui pensiamo alla sicurezza: invece di bloccare i dati dietro un'unica chiave, elimina la necessità di un'unica entità fidata e garantisce che nessuna informazione parziale possa mai trapelare. Questa base lo rende potente e resistente, anche di fronte alle minacce emergenti.

Ma per quanto lo schema classico sia solido, i sistemi del mondo reale richiedono di più. L'archiviazione su larga scala comporta problemi di efficienza, le reti distribuite introducono il rischio di azioni corrotte o dannose e l'affidabilità a lungo termine richiede meccanismi che vadano oltre le basi.

Nella seconda parte vedremo come affrontare esattamente queste sfide:

  • Come la sicurezza computazionale di Secret Sharing riduce l'overhead di archiviazione,
  • Come Robust Secret Sharing rileva le condivisioni danneggiate e consente uno storage cloud auto-riparativo altamente resiliente

Rimanete sintonizzati, perché la vera forza dell'secret sharing non risiede solo nella sua eleganza matematica, ma nel modo in cui si evolve per soddisfare le esigenze della moderna sicurezza dei dati distribuiti.

Riferimenti

[1] Adi Shamir. 1979. Come condividere un segreto. Commun. ACM 22, 11 (novembre 1979), 612-613. https://doi.org/10.1145/359168.359176


Siete pronti a proteggere i vostri dati dalle minacce future?

➡️ Contattate per un consultazione o demo su misura per la vostra infrastruttura.

Scoprite come funziona l'fragmentiX in dettaglio:

➡️ Esplora il nostro soluzioni.

Ti potrebbe anche piacere...

0 commenti

it_ITIT