Plus loin dans le programme

- Formulation du problème du sac à dos (+ pourquoi un sac à dos?)
- Des défis faciles et difficiles
- Exemples de
- Histoire
Qu'est-ce que le chiffrement à clé publique?
.
: , .
, - !
- , , «», .
- . , , , .

, - !
Le premier algorithme de clé publique générale a utilisé l'algorithme de sac à dos.
Sur la base de la définition des systèmes de clés publiques, il faut deux clés pour chiffrer (et déchiffrer) un message avec succès. Le destinataire "légal" du message connaît la clé secrètetandis que l'expéditeur possède une autre clé publique ...
Que faire si une clé publique est connue d'un attaquant?
Il y a une réponse: la clé publique doit être obtenue à partir de la clé secrète à l'aide d'une transformation ( fonction unidirectionnelle )avec les deux propriétés suivantes:
- connaissant A, il est facile de calculer la fonction elle-même
- , et il est difficile de calculer la fonction inverse

Qu'est-ce que «facile» et «difficile»?
.
«» , . .. , — , — . , .
«» . , , .
.. , , , .
«» , . .. , — , — . , .
«» . , , .
.. , , , .
Le problème du sac à dos est formulé comme suit
L'ensemble (vecteur de sac à dos) Est un ensemble ordonné de ( nombres naturels distincts ... Qu'il y ait un nombre- ensemble et positif. La tâche est de trouver un tel ensemblede sorte qu'au total, ils donnent exactement ...
Dans la version la plus connue du problème du sac à dos, il est nécessaire de savoir si une paire donnée adécision. Dans la variante utilisée en cryptographie, vous avez besoin de cette entréeconstruire une solution en sachant qu'une telle solution existe. Ces deux options sont NP-complètes.
Analogie avec le sac à dos
Dans le cas le plus simple indique la taille (capacité) du sac à dos et chacun des nombres indique la taille (poids) d'un article qui peut être emballé dans un sac à dos. La tâche est de trouver un tel ensemble d'articles afin que le
sac à dos soit complètement rempli.
Autrement dit, imaginez que vous avez un ensemble de poids 1, 6, 8, 15 et 24, vous devez emballer un sac à dos avec un poids de 30.

En principe, une solution peut toujours être trouvée par une recherche exhaustive de sous-ensembles et vérifier laquelle de leurs sommes est ... Dans notre cas, cela signifie la force brutesous-ensembles (y compris l'ensemble vide). C'est tout à fait faisable.
Mais que faire s'il y a plusieurs centaines de numéros?
Dans notre exemple, n = 5 pour ne pas compliquer la présentation. Dans des conditions réelles, un exemple aura, disons, 300... Le point ici est qu'aucun algorithme n'est connu qui ait une complexité significativement inférieure par rapport à la recherche exhaustive. Rechercher parmiles sous-ensembles ne peuvent pas être traités. En effet, le problème du sac à dos est connu sous le nom de NP-complet ... Les problèmes NP-complete sont considérés comme difficiles à calculer.
La fonction répond-elle aux exigences spécifiées?
Nous définissons la fonctionde la manière suivante. N'importe quel chiffre peut être donnée par une représentation binaire de bits, où des zéros non significatifs sont ajoutés si nécessaire. Maintenant définissons en nombre obtenu à partir de résumer tout cela que le bit correspondant en notation binaire est égal à 1.
Autrement dit,
Fonction était déterminé ensemble ... Évidemment, si nous sommes capables de calculer de , alors pratiquement en même temps le problème du sac à dos sera résolu: sa représentation binaire est immédiatement calculée, ce qui donne à son tour les composantes de l'ensemble inclus dans la somme pour ... D'autre part, le calcul de est léger. Puisque le problème du sac à dos est NP-complet,est un bon candidat pour une fonction unidirectionnelle. Bien sûr, il faut exiger que était assez grand, disons pas moins ...
Chiffrement
Texte brut
(. plain text) — , , . ( ).
Il existe deux façons de chiffrer:
- Le chiffrement du message est obtenu en élevant les éléments de ce vecteur de sac à dos à la puissance des bits correspondants du message chiffré puis en multipliant tous les résultats, c'est-à-dire si et le message , alors le chiffre sera le nombre . .
- , , , , . .
Exemple
Pour crypter du texte brut en représentation binaire, il est divisé en blocs de longueur(par exemple, vous pouvez représenter le poids 30 avec le binaire 11110). On pense que l'un indique la présence d'un objet dans le sac à dos, et zéro indique son absence.

Le chiffrement à dos offre une bonne approche pour créer des clés publiques et privées, où la clé privée est facile à utiliser et la clé publique est difficile à comprendre.
Ainsi, nous pouvons créer un système où: le problème "dur" est la
clé publique , car avec lui, vous pouvez facilement crypter et il est impossible de décrypter le message.
une clé privée - le problème "facile" servira de en l'utilisant, vous pouvez facilement décrypter le message. Sans la clé privée, vous devez résoudre le problème "difficile" du sac à dos.
Problème "facile"
Vecteur de sac à dos super croissant
, , . .
Pour les vecteurs super-croissants Α, le problème du sac à dos est facilement résoluble. Ceux. le sac à dos est facile à assembler.
Prenons un exemple:

Algorithme
- .
, , . , . - .
- (1)-(2) .
, .
"Problème difficile
Il est beaucoup plus difficile de déchiffrer le problème d'un sac à dos non surdimensionné .
Un algorithme, qui utilise un sac à dos à clé privée surdimensionné et un sac à dos à clé publique non surdimensionné, a été créé par Merkle et Hellman.
Ils l'ont fait en prenant la tâche du sac à dos surdimensionné et en la transformant en une tâche non surdimensionnée.
(Merkle et Hellman, en utilisant l'arithmétique modulaire, ont conçu un moyen de transformer un sac à dos "léger" en un sac à dos "dur")
Créer une clé publique
Plusieurs concepts importants
- ,
— , , [x/m] — ,
-
, , .
, , , , B A m t , , .
, ,
. ,
.
-
, , .
- — , , , .
Le créateur du cryptosystème choisit un tel système ce vecteur est en pleine croissance, et vient de forte multiplication modulaire par rapport à ... Vecteur étendu en tant que clé de cryptage et blocs binaires de longueur envoyé au concepteur sous forme de nombres obtenu en utilisant le vecteur ...
L'intercepteur de messages doit résoudre le problème du sac à dos pour entrer... Le créateur du cryptosystème calcule
et résout le problème d'entrée du sac à dos ... Pourquoi tout cela fonctionne est
montré dans le lemme suivant.
Lemme . Faisons semblant quesuper vecteur et vecteur de croissance dérivé de forte multiplication modulaire par rapport à ... Supposons en outre que, - un nombre naturel arbitraire et ... Alors les affirmations suivantes sont vraies.
(i) Le problème du sac à dosrésoluble en temps linéaire. Si une solution existe, elle est unique.
(ii) Le problème du sac à dosa au plus une solution.
(iii) S'il y a une solution à saisir, alors il correspond à la seule solution d'entrée ...
preuve (p. 104)
Exemple
Considérons une séquence super-croissante; par exemple, {1, 2, 4, 10, 20, 40}. Le module doit être supérieur à la somme de tous les nombres de la séquence, par exemple 110. Le multiplicateur ne doit pas avoir de diviseurs communs avec le module. Alors choisissons 31.

Nous avons donc calculé la clé publique: {31, 62, 14, 90, 70, 30} et la clé privée - {1, 2, 4, 10, 20,40}.
Essayons maintenant d'envoyer une séquence binaire: 100100111100101110

Certains des avantages des clés publiques
- , .
- . , , . , , . ( )


Certaines personnes pensent qu'un jour un algorithme polynomial-temps pourrait être inventé pour résoudre des problèmes de factorisation d'entiers et de logarithmes discrets, alors que le problème du sac à dos est toujours NP-complet.
Il y a plusieurs "MAIS" ici.
Premièrement, l'exhaustivité NP est basée sur l'analyse du cas le plus défavorable; deuxièmement, l'exhaustivité NP est une caractéristique d'un problème général et non d'un cas particulier. Cela signifie que si l'on considère la complexité moyenne, le problème du sac à dos peut être facile.
Le matériel a été préparé sur la base de cette littérature:
(1) A. Salomaa. Cryptographie à clé publique. - Springer-Verlag, 1990. - p. 75-82, pages 101-111
(2)Min Kin Lai. Knapsack Cryptosystems : Past and Future - Université de Californie, 2001
(3) Baocang Wang, Qianhong Wu, Yupu Hu. Un schéma de cryptage probabiliste basé sur un sac à dos. 2007
(4) - (5)