Szyfr Plecakowy
Jest to szyfr asymetryczny więc posiada dwa rodzaje kluczy: publiczny oraz prywatny.
Specyfikacja algorytmu plecakowego
Mamy tzw. wektor załadunku , w którym wszystkie wartości są różne od siebie.
Jest to taki wektor, który możemy interpretować jaki wagi poszczególnych przedmiotów, które mogą znaleźć się w plecaku.
Tekst jawny natomiast w przypadku tego szyfru to skończony ciąg binarny, czyli gdzie .
Zatem szyfrogram (jako waga całego plecaka) wyraża się wzorem
Podsumowując:
- Klucz publiczny - wektor załadunku a
- Tekst jawny (to co szyfrujemy) - wektor binarny x
- Szyfr (to co zaszyfrowaliśmy) - iloczyn dwóch wektorów S
Odszyfrowanie - problemy
Jeśli udało nam się dany tekst jawny zaszyfrować, co stanie się w momencie, gdy zechcemy do odszyfrować? Czy da się zawsze uzyskać jednoznaczną odpowiedź jeśli wektor załadunku jest dowolnym wektorem?
Prosty szyfr plecakowy
Prostym szyfrem plecakowym nazywamy taki problem, w którym każda kombinacja elementów daje jednoznaczne rozwiązanie.
Aby mogło do tego dojść, wektor załadunku musi być superrosnący, to znaczy, że suma wszystkich elementów musi być mniejsza niż .
Odszyfrowywanie przebiega wtedy bez problemu, bo dostajemy jednoznaczną odpowiedź.
Przykład prostego szyfru plecakowego

Trudny szyfr plecakowy
Zakładamy, że posiadamy klucz do prostego szyfru plecakowego. W tym celu chcielibyśmy by nasz wektor załadunku nie był już wektorem superrosnącym co nie? Jeśli tak się stanie, naszej wiadomości nie będzie dało się rozszyfrować jednoznacznie.
W tym celu należy:
- Wybrać taką liczbę , która jest większa od sumy elementów prostego plecaka
- Wybrać taką liczbę , dla której
- Znajdujemy taką liczbę , która jest odwrotnością modularną , tzn. , posłuży nam ona do odszyfrowywania
