Criptografia assimétrica com uma chave secreta única: descrição da ideia e possível aplicação


(para entender o que este artigo diz, é necessário e suficiente, pelo menos em termos gerais, imaginar o que é criptografia assimétrica e como funciona a assinatura eletrônica)

Cenário para usar uma chave secreta única:

  1. Um par de chaves é criado, consistindo em chaves secretas (chave secreta, SK) e públicas (chave pública, PK).
  2. Usando uma chave secreta, várias operações são executadas. A primeira delas, a criação da chave pública, já foi concluída na primeira etapa.
  3. À primeira vista, uma ação antivírus é executada - a chave secreta é destruída sem a possibilidade de recuperação.

Usar a chave pública restante para criptografar dados não faz sentido (a descriptografia na ausência de uma chave secreta é considerada impossível), mas a chave pública pode ser usada para verificar assinaturas eletrônicas criadas na segunda etapa.
Essa abordagem pode ser usada para ligação de dados criptograficamente confiáveis. Nesse caso, a chave pública do par de chaves original se torna um identificador de comunicação.

Uma vantagem significativa é que o par de chaves usado não pode ser comprometido a não ser por força bruta, ou através da exploração da vulnerabilidade matemática do algoritmo usado. Se a chave secreta não existir mais, ela não poderá ser roubada, enganada ou recuperada.

Exemplo de uso


Tarefa: em um sistema distribuído, os participantes são registrados sob os identificadores exclusivos criados por eles. É necessário complicar ao máximo a tarefa de "seqüestrar" o identificador de outra pessoa (roubo de identidade). No caso de roubo de identidade, forneça ao verdadeiro proprietário a oportunidade de devolver o roubo.

Maneiras de resolver o problema sem usar a tecnologia em questão:

  • "Opção zero". Confiar na honestidade dos participantes no processo.
  • "Proibição administrativa". Ao se inscrever, os participantes precisam de um passaporte. Proibir legalmente o uso de identificadores de outras pessoas. Vincular o identificador ao número de telefone, use autorização multifatorial. Em caso de dúvida, solicite novamente um passaporte. Confiar na honestidade e integridade dos inspetores autorizados. Em casos de uso indevido, multar e / ou colocar o culpado na prisão.
  • "A chave pública como um identificador." Consequentemente, a chave secreta é usada como um meio de autorização. Em princípio, uma opção válida (em particular, é usada em criptomoedas), com a exceção de que quando uma chave secreta é perdida ou comprometida, o participante deixa o jogo irreversivelmente.

A solução para o problema usando chaves privadas descartáveis:

  1. O participante cria um par de chaves de identificação [SK 0 , PK 0 ]. A chave pública PK 0 (ou seu hash) se torna o identificador exclusivo do participante.
  2. O participante cria um conjunto adicional de pares de chaves [SK 1 , PK 1 ], [SK 2 , PK 2 ] ... [SK n , PK n ] e a chave pública de cada um deles é assinada com a chave SK 0 .
  3. A chave SK 0 é destruída. As etapas de um a três são executadas como parte de um único processo sem gravar SK0 na memória não volátil.
  4. Para autenticação, o participante usa um dos pares de chaves criados na segunda etapa (por exemplo, [SK 1 , PK 1 ]) e o restante, se eles foram criados, fica oculto em um local seguro.
  5. Se o par de chaves usado estiver comprometido, sua chave (no exemplo, PK 1 ) será colocada na lista de feedback e uma das chaves sobressalentes será usada para autenticação. Ou, outra chave adicional é criada que possui uma cadeia de certificação iniciando com PK 0 (por exemplo, PK 0 - PK 2 - PK n + 1 ).

Falando especificamente sobre criptomoedas, a solução para o problema descrito aqui não faz muito sentido (com a ajuda de uma chave roubada, um invasor esvazia a carteira imediatamente), mas o tópico "autenticação" está longe de ser esgotado pelo uso de criptomoedas.
Para conveniência de discussões adicionais, a seguinte notação pode ser sugerida para as chaves usadas:
chave i - uma chave de identificação. Neste exemplo, é PK 0 .
chave a - chave de autenticação Neste exemplo, é PK 1 ou qualquer outra chave, direta ou indiretamente assinada pela tecla i .
hc-key - uma das chaves adicionais ocultas com segurança (o invasor não conhece o fato de sua existência nem o seu número), usada para restaurar o acesso em caso de comprometimento de uma chave .

Uma pequena nota sobre o uso de chaves privadas descartáveis. Um esquema só funciona se o sujeito que criou o par de chaves inicial não tiver motivação para manter uma chave secreta para alguma necessidade específica. Ao usar esta tecnologia para autenticação, todas as necessidades são completamente cobertas por um conjunto de chaves hc adicionais (a propósito, um enigma para os presentes: qual é a abreviação hc sugerindo?). Salvar a chave original não traz nenhum benefício, mas cria uma vulnerabilidade que torna possível o roubo de identidade irreversível.


PS Se a tecnologia descrita aqui for subitamente original, existe o desejo de transformar esta publicação em um artigo em alguma publicação respeitada em inglês. Para aqueles que podem ajudar com isso, proponho cooperação por uma taxa ou por co-autoria.

Source: https://habr.com/ru/post/pt420095/


All Articles