O que é Secret Sharing? - Explicação do esquema de Shamir e por que ele é importante para a segurança de dados

Secret Sharing: A tecnologia que alimenta o fragmentiX (Parte 1)

Introdução: O que o Secret Sharing realmente significa em criptografia

No campo da criptografia, poucos conceitos têm nomes tão enganosos quanto secret sharing. À primeira vista, pode parecer um primo do mais conhecido segredo compartilhado. Mas, apesar da fraseologia semelhante, essas duas ideias têm finalidades muito diferentes.

Um segredo compartilhado é normalmente um valor único conhecido por várias partes, usado para estabelecer uma comunicação segura. Em contrapartida, o secret sharing é uma técnica para dividir um segredo em várias partes, ou compartilhamentos, de modo que somente um subconjunto designado desses compartilhamentos possa reconstruir o segredo original. O mais importante é que nenhum compartilhamento individual revela qualquer informação sobre o segredo por si só.

Diferentemente dos esquemas de criptografia, que dependem de chaves para bloquear e desbloquear dados, o secret sharing é um método criptográfico sem chave, eliminando a necessidade de uma única entidade confiável para controlar uma chave. Isso o torna especialmente poderoso em cenários em que o controle centralizado é uma responsabilidade e a resiliência contra comprometimento é fundamental.

O conceito foi formalizado no final da década de 1970 por Adi Shamir [1] e George Blakley. Desde então, o secret sharing tem encontrado aplicações que vão muito além do armazenamento seguro: desde a proteção de códigos de lançamento nuclear e carteiras de criptomoedas até a viabilização de computação segura para várias partes e sistemas de autenticação baseados em limites.

Na fragmentiX, aproveitamos o poder da secret sharing para criar sistemas de armazenamento em nuvem seguros e distribuídos, garantindo que seus dados permaneçam protegidos mesmo que partes do sistema falhem ou sejam comprometidas. Nas seções a seguir, exploraremos como o secret sharing funciona, começando com o esquema clássico de Shamir na primeira parte desta postagem do blog e, em seguida, mergulharemos nas extensões que o tornam ainda mais robusto e versátil na segunda parte.

Secret Sharing de Shamir: um exemplo intuitivo

Imagine um instituto de pesquisa médica trabalhando em um tratamento médico revolucionário. A fórmula é um segredo bem guardado, não apenas por motivos de propriedade intelectual, mas para evitar vazamentos prematuros ou uso indevido. Para protegê-la, o instituto decide dividir a fórmula entre vários pesquisadores de confiança localizados em diferentes países.

Mas eles não dividem simplesmente o documento em partes. Isso seria arriscado, pois cada parte ainda poderia conter pistas. Em vez disso, eles usam o Secret Sharing de Shamir, um método com base na criptografia de limiar, em que um segredo é dividido em n ações e um limite predefinido k dessas ações é necessário para reconstruí-lo.

É importante ressaltar que qualquer subconjunto de menos de k O fato de que os compartilhamentos de dados não revelam absolutamente nada sobre o segredo original - um nível de proteção tão forte que mesmo um adversário com poder computacional ilimitado não consegue extrair nenhuma informação de compartilhamentos insuficientes. Esse nível excepcional de proteção se enquadra na categoria de segurança com base na teoria da informação (ITS). É o mesmo tipo de garantia oferecido pelo One-Time Pad, o exemplo clássico de criptografia inquebrável que atinge o ITS quando usado corretamente. Embora o One-Time Pad raramente seja prático devido aos seus requisitos rigorosos, o Secret Sharing da Shamir também oferece ITS em condições mais flexíveis, o que o torna adequado para uma gama maior de aplicações do mundo real. É importante ressaltar que esse nível de segurança não é ameaçado por avanços em criptoanálise ou computação, incluindo computadores quânticos.

Outro recurso poderoso: não importa quais compartilhamentos estão disponíveis. Se o instituto criar 10 compartilhamentos e definir o limite em 7, quaisquer 7 desses 10 pesquisadores poderão se reunir e reconstruir a fórmula secreta. Mesmo que 3 compartilhamentos sejam perdidos, o segredo permanece recuperável. Isso torna o esquema de Shamir não apenas seguro, mas também altamente tolerante a falhas.

Essa flexibilidade e tolerância a falhas tornam o esquema de Shamir ideal para sistemas distribuídos seguros, em que a integridade e a disponibilidade dos dados devem coexistir com a confidencialidade estrita.

Explicação técnica: A matemática por trás do Secret Sharing de Shamir

No centro do Secret Sharing de Shamir está uma ideia muito simples: um polinômio de grau k1 é determinado exclusivamente por k pontos distintos. Por exemplo, uma linha (um polinômio de grau 1) pode ser reconstruída a partir de quaisquer dois pontos distintos, enquanto uma parábola (grau 2) requer três pontos. Esse princípio forma a espinha dorsal do esquema.

Para codificar um segredo, nós o incorporamos como o termo constante de um polinômio de grau gerado aleatoriamente k-1 sobre um campo finito. Para usar uma analogia visual: pense no segredo como o ponto em que o gráfico do polinômio cruza o eixo y - ou seja, o valor do polinômio em x=0. Em seguida, avaliamos esse polinômio em n pontos distintos não nulos para produzir n ações.

Como resultado, qualquer k desses compartilhamentos podem ser usados para reconstruir o polinômio original e, portanto, o segredo usando técnicas de interpolação. Mas menos de k As ações não revelam absolutamente nada. Isso não é apenas uma dificuldade computacional, é uma garantia matemática.

Figura 1: Exemplo de um esquema de limiar 3 de 4

Na Figura 1, o segredo é a coordenada y do ponto S onde a parábola intercepta o eixo y. Quatro pontos em uma parábola representam as quatro ações (A, B, C, D). Quaisquer três desses pontos são suficientes para determinar o segredo de forma exclusiva. Dois pontos deixam a parábola - e, portanto, o segredo - indeterminada. Observe que, nesse exemplo simplificado, visualizamos um polinômio sobre o campo de números reais em vez de um campo finito.

Passo a passo:

1. Definição do segredo e dos parâmetros

  • Que o segredo seja um número em um campo finito (por exemplo, um campo finito com 28 elementos que podem representar todos os valores possíveis de um byte).
  • Escolha um limite k (número mínimo de compartilhamentos necessários para reconstruir o segredo).
  • Escolha o número total de ações n, onde nk.

2. Construção do polinômio

Para codificar o segredo, construímos um polinômio aleatório f(x) de grau k1:

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

  • O termo constante a0 é o segredo.
  • Os coeficientes a1,a2,...,ak-1 são escolhidos uniformemente de forma aleatória no campo finito.
  • A aleatoriedade desses coeficientes é fundamental, pois garante que o polinômio seja imprevisível e que o esquema atinja a segurança da teoria da informação.

3. Geração de ações

Cada ação si é um ponto no polinômio:

si=(xi, f(xi))

  • Escolha valores distintos e diferentes de zero x1,x2,...,xn no campo finito.
  • Avalie o polinômio em cada xi para obter o correspondente f(xi).

Esses pares (xi,f(xi)) são distribuídos aos participantes. Cada compartilhamento parece um dado aleatório por si só e não revela nada sobre o segredo, a menos que seja combinado com outros compartilhamentos suficientes.

4. Reconstrução do segredo

Para recuperar o segredo a0, qualquer grupo de k os participantes podem usar seus compartilhamentos para reconstruir o segredo usando Interpolação de Lagrange:

a 0 = f ( x i ) j i x i x j - x i a_0 = sum f(x_i) prod from{ji} {{x_i} over {x_j - x_i}}

Propriedades de segurança

  • Segurança com base na teoria da informação: Qualquer grupo com menos de k compartilha não aprende nada sobre o segredo. Isso não é apenas difícil do ponto de vista computacional, é matematicamente impossível.
  • Flexibilidade de limiar: Você pode escolher qualquer k e n para equilibrar a segurança e a tolerância a falhas.
  • Resiliência: Não importa quais compartilhamentos estão perdidos ou indisponíveis. Desde que k compartilhamentos válidos permanecerem, o segredo poderá ser recuperado.

Conclusão: Por que o Secret Sharing de Shamir ainda é importante hoje em dia

O Secret Sharing de Shamir demonstra como a matemática pode transformar a maneira como pensamos sobre segurança: em vez de bloquear os dados em uma única chave, ele elimina a necessidade de uma única entidade confiável e garante que nenhuma informação parcial possa vazar. Essa base o torna poderoso e resiliente, mesmo diante de ameaças emergentes.

Mas, por mais sólido que seja o esquema clássico, os sistemas do mundo real exigem mais. O armazenamento em larga escala traz preocupações de eficiência, as redes distribuídas introduzem o risco de compartilhamentos corrompidos ou mal-intencionados e a confiabilidade de longo prazo exige mecanismos que vão além do básico.

Na Parte 2, veremos exatamente como esses desafios são abordados:

  • Como o Secret Sharing computacionalmente seguro reduz a sobrecarga de armazenamento,
  • Como o Robust Secret Sharing detecta compartilhamentos corrompidos e permite o armazenamento em nuvem com autocorreção altamente resiliente

Fique atento, pois a verdadeira força do secret sharing não está apenas em sua elegância matemática, mas em como ele evolui para atender às demandas da segurança de dados moderna e distribuída.

Referências

[1] Adi Shamir. 1979. Como compartilhar um segredo. Commun. ACM 22, 11 (Nov. 1979), 612-613. https://doi.org/10.1145/359168.359176


Pronto para proteger seus dados contra ameaças futuras?

➡️ Entre em contato para uma consulta ou demonstração adaptados à sua infraestrutura.

Saiba como o fragmentiX funciona em detalhes:

➡️ Explore nosso soluções.

Você também pode gostar...

0 comentários

pt_BRPT