web-dev-qa-db-fra.com

Existe-t-il une différence entre le cryptage aes-128-cbc et aes-128?

Je veux savoir s'il existe une différence entre ces deux méthodes de cryptage? Je n'ai jamais utilisé ces avant. Mon client m'a demandé d'utiliser le chiffrement AES-128, mais lorsque je le recherche sur Google, il me montre "aes-128-cbc", "aes-128-ctr", "aes-256-cbc" ou "aes-256-ctr "alors je veux savoir lequel utiliser, ce sera comme AES-128?

lien de référence: c'est là que je dois envoyer la méthode de cryptage

9
Umair Malik

3 choses:

  • AES: Advanced Encryption Standard. C'est le nom de l'algorithme de chiffrement (chiffrement symétrique). Les autres algorithmes de chiffrement symétriques sont: DES, 3-DES, etc.
  • 128: Cela fait probablement référence à la taille de la clé. Le cryptage AES utilise 3 tailles de clé (128 bits, 192 bits et 256 bits). La taille de bloc dans AES est également de 128 bits.
  • CBC: C'est le mode de cryptage que vous souhaitez. Il existe plusieurs modes de cryptage, qui dépendent de la rapidité avec laquelle vous voulez que votre algorithme fonctionne, du parallélisme et du niveau de sécurité. Quelques modes sont CBC (Cipher Block Chaining), ECB (Electronic Code Book), CFB (Cipher Feed Back), CTR (Counter), etc.

Maintenant, votre client vous a demandé de chiffrer avec AES-128. Donc, vous devriez utiliser le cryptage AES avec une taille de clé de 128 bits. Tout mode que vous pouvez utiliser sera de votre préférence. Je préférerais CBC.

24
vish4071

Juste une petite note sur CBC vs BCE. Lorsque vous chiffrez avec ECB, tous les 128 bits (en fonction de la taille du bloc) de données sont chiffrés avec la même clé. S'il y a un motif dans le texte en clair, le texte crypté résultant sera également prévisible, quelle que soit la qualité de l'algorithme de cryptage.

BCE:

Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
            ---------------- ---------------- ----------------
Encrypted:  bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp

Si vous utilisez CBC, le premier bloc reçoit XOR'd avec l'IV (vecteur d'initialisation) et est crypté avec la clé et le deuxième bloc obtient XOR'd avec le premier bloc, puis crypté avec la clé, le troisième avec le second. Le chiffre obtenu est alors moins vulnérable à l’analyse fréquentielle .  CBC Encryption mode

Cette image est tirée de Wikimedia Commons, le référentiel de médias gratuit

L'inconvénient est que vous ne pouvez pas paralléliser le chiffrement/déchiffrement car vous avez besoin du résultat du bloc précédent, ce qui risque de le ralentir. Mais dans la pratique, cela ne fait aucune différence.

15
Vincent

Le lien que vous avez inclus montre qu’il acceptera un certain nombre de modes différents, y compris CBC. Sauf si vous avez une raison spécifique de ne pas l'utiliser, utilisez AES-128-CBC. Le mode CBC est un bon mode polyvalent. Vous devez également comprendre l'utilisation du remplissage (utilisez PKCS # 5 ou PKCS # 7, quelle que soit celle que votre système permet) et d'un vecteur d'initialisation, IV, pour que le mode CBC fonctionne correctement.

N'utilisez pas le mode ECB, car il n'est pas sécurisé et laisse échapper des informations.

3
rossum

Voici aes-128-cbc et aes-128. aes signifie service de cryptage avancé, 128 est le débit binaire et CBC est le mode de cryptage.

Cependant, ceci est récité et utilisé uniquement dans les formats OPEN SSL. Avant Open SSL, PHP utilisait mcrypt_encrypt qui n'était pas correctement conçu (versions antérieures de PHP) .aes-128 peut également être remplacé par rijndael lors de l'utilisation de mcrypt.

0
Raghu Veera