Mais adiante no programa
- Formulação do problema da mochila (+ por que uma mochila?)
- Desafios fáceis e difíceis
- Exemplos de
- História
O que é criptografia de chave pública?
.
: , .
, - !
- , , «», .
- . , , , .
: , .
, - !
O primeiro algoritmo de chave pública geral usou o algoritmo da mochila.
Com base na definição de sistemas de chave pública, são necessárias duas chaves para criptografar (e descriptografar) uma mensagem com êxito. O destinatário "legal" da mensagem conhece a chave secretaenquanto o remetente possui outra chave pública
O que fazer se uma chave pública se tornar conhecida por um invasor?
Há uma resposta: a chave pública deve ser obtida da chave secreta usando uma transformação ( função unidirecional )
sabendo A, é fácil calcular a própria funçãoB = f ( A )
, e é difícil calcular a função inversaA = f − 1 ( B )

O que é "fácil" e "difícil"?
.
«» , . ..n , — t ∝ n a , a — . , .
«» . , , .
..n , t ∝ 2 n , , .
«» , . ..
«» . , , .
..
O problema da mochila é formulado da seguinte forma
O conjunto (vetor mochila)
Na versão mais famosa do problema da mochila, é necessário descobrir se um determinado par tem
Analogia da mochila
No caso mais simples
mochila fique completamente cheia.
Ou seja, imagine que você tem um conjunto de pesos 1, 6, 8, 15 e 24, você precisa levar uma mochila com peso 30.

Em princípio, uma solução pode sempre ser encontrada pela pesquisa exaustiva de subconjuntos
Mas e se houver várias centenas de números
No nosso exemplo, n = 5, para não complicar a apresentação. Em condições reais, um exemplo terá, digamos, 300
A função atende aos requisitos especificados?
Nós definimos a função
Ou seja,
Função
Encriptação
Texto simples
(. plain text) — , , . ( ).
Você pode criptografar de duas maneiras:
- A cifra da mensagem é obtida elevando-se os elementos deste vetor de mochila à potência dos bits correspondentes da mensagem criptografada e depois multiplicando todos os resultados, ou seja, se
e a mensagemA = ( 2 , 3 , 5 ) , então a cifra será o número( 100 ) ... Esta é uma forma multiplicativa .2 1 ∗ 3 0 ∗ 5 0 = 2 - A cifra da mensagem é obtida multiplicando-se os elementos deste vetor de mochila pelos bits correspondentes da mensagem criptografada e somando todos os resultados, ou seja, se
e a mensagemA = ( 2 , 3 , 5 ) , então a cifra será o número( 100 ) ... Este método é denominado aditivo .2 ∗ 1 + 3 ∗ 0 + 5 ∗ 0 = 2
Exemplo
Para criptografar texto simples em representação binária, ele é dividido em blocos de comprimento

A criptografia de mochila fornece uma boa abordagem para a criação de chaves públicas e privadas, onde a chave privada é fácil de usar e a chave pública é difícil de descobrir.
Assim, podemos criar um sistema onde: o problema "difícil" servirá como a
chave pública ; com ele, você pode criptografar facilmente e é impossível descriptografar a mensagem.
uma chave privada - o problema "fácil" servirá como usando-o, você pode descriptografar a mensagem facilmente. Sem a chave privada, você tem que resolver o "difícil" problema da mochila.
Problema "fácil"
Vetor de mochila supercrescendo
A = ( a 1 , . . . , a n ) , Σ i = 1 j − 1 a i < a j j = 2 , . . . , n , . .
Para vetores supercrescentes Α, o problema da mochila é facilmente resolvido. Essa. a mochila é fácil de montar.
Vamos dar um exemplo:

Algoritmo
- .
, , . , . - .
- (1)-(2) .
, .
Problema "difícil"
É muito mais difícil decifrar o problema de uma mochila não muito grande .
Um algoritmo, que usa uma mochila de chave privada grande e uma mochila de chave pública não grande, foi criado por Merkle e Hellman.
Eles fizeram isso pegando a tarefa da mochila superdimensionada e transformando-a em uma tarefa não superdimensionada.
(Merkle e Hellman, usando aritmética modular, desenvolveram uma maneira de transformar uma mochila "leve" em uma "rígida")
Crie uma chave pública
Vários conceitos importantes
-
( x , m o d m ) x ,m
— ,x , [x/m] — ,m > 1 x = ( x , m o d m ) + [ x / m ] ∗ m
-
,A m > m a x A ,t < m .( t , m ) = 1
,B = ( b 1 , . . . , b n ) ,b i = ( t a i , m o d m ) , , B A m t , ,i = 1 , . . . , n .( m , t )
( t , m ) = 1
, ,t − 1 = u
t u ≡ 1 ( m o d m )
. ,1 ≤ u < m A B
.m , u
-
m > m a x A
, ,m > Σ i = 1 n a i B A .m , t
- — , , , .
O criador do criptossistema escolhe tal sistema
O interceptor de mensagem deve resolver o problema da mochila para entrar
e resolve o problema de entrada na mochila
mostrado no seguinte lema.
Lemma . Vamos fingir que
(i) O problema da mochila
(ii) O problema da mochila
(Iii) Se houver uma solução para entrar
prova (p. 104)
Exemplo
Considere uma sequência de supercrescimento; por exemplo, {1, 2, 4, 10, 20, 40}. O módulo deve ser maior do que a soma de todos os números na sequência, por exemplo 110. O multiplicador não deve ter divisores comuns com o módulo. Então, vamos escolher 31.

Portanto, calculamos a chave pública: {31, 62, 14, 90, 70, 30} e a chave privada - {1, 2, 4, 10, 20,40}.
Agora vamos tentar enviar uma sequência binária: 100100111100101110

Alguns dos benefícios das chaves públicas
- Ao usar um criptosistema de chave pública, ambas as partes não se encontram, podem nem mesmo se conhecer e usar qualquer tipo de comunicação.
- Comprimento da chave. Na criptografia simétrica, se a chave for maior do que a mensagem original, nenhum ganho real é obtido. Quanto aos criptosistemas de chave pública, o comprimento da chave de criptografia não importa, uma vez que é público e público. Portanto, o comprimento da chave de descriptografia não é tão importante (o destinatário apenas a armazena em um local secreto)
História
Por muito tempo, os criptossistemas de mochila foram considerados os mais atraentes e promissores devido à sua NP-completude e alta velocidade de criptografia e descriptografia. Muitos esquemas usam o problema da mochila (em várias variações), aqui estão apenas alguns deles: o problema da mochila compacta, o problema da mochila multiplicativa, o problema da mochila modular, o problema da capa de matriz, o problema de fatoração de grupo ...
Infelizmente, a maioria deles é vulnerável a ataques. Descobriu-se que não é trivial projetar um criptossistema seguro baseado no problema da mochila, embora o problema seja conhecido como NP-completo. A maioria dos criptossistemas de mochila foi hackeada. Apesar disso, em contraste com a fatoração inteira e o logaritmo discreto, o problema geral da mochila (solução) é um problema NP-completo comprovado.
Algumas pessoas pensam que um dia um algoritmo de tempo polinomial pode ser inventado para resolver problemas de fatoração de inteiros e logaritmos discretos, enquanto o problema da mochila ainda será NP-completo.
Existem vários "MAS" aqui.
Primeiro, NP-completude é baseada na análise do pior caso e, segundo, NP-completude são características de um problema geral, não de um caso específico. Isso significa que se considerarmos a complexidade média, o problema da mochila pode ser simples.
O material foi preparado com base nesta literatura:
(1) A. Salomaa. Criptografia de chave pública. - Springer-Verlag, 1990. - p. 75-82, pp. 101-111
(2)Min Kin Lai. Knapsack Cryptosystems : Past and Future - University of California, 2001
(3) Baocang Wang, Qianhong Wu, Yupu Hu. Um esquema de criptografia probabilística baseado em mochila. 2007
(4) - (5)