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
3 choses:
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.
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 .
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.
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.
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
.