Есть ли разница между шифрованием aes-128-cbc и aes-128?
Я хочу знать, есть ли разница между этими двумя методами шифрования? Я никогда не использовал это раньше. Мой клиент попросил меня использовать шифрование AES-128, но когда я его гуглю, он показывает мне "aes-128-cbc", "aes-128-ctr", "aes-256-cbc" или "aes-256-ctr" "так что я хочу знать, какой из них мне следует использовать, который будет похож на AES-128?
4 ответа
3 вещи:
- AES: улучшенный стандарт шифрования. Это название алгоритма шифрования (симметричное шифрование). Другие симметричные алгоритмы шифрования: DES, 3-DES и т. Д.
- 128: Это, вероятно, относится к размеру ключа. AES-шифрование использует 3 размера ключа (128-битный, 192-битный и 256-битный). Размер блока в AES также составляет 128 бит.
- CBC: это режим шифрования, который вы хотите. Существует несколько режимов шифрования, которые зависят от того, насколько быстро вы хотите, чтобы ваш алгоритм работал, параллелизма и уровня безопасности. Несколько режимов: CBC(цепочка блоков шифров), ECB(электронная кодовая книга), CFB(обратная связь шифров), CTR (счетчик) и т. Д.
Теперь ваш клиент попросил вас зашифровать с помощью AES-128. Таким образом, вы должны использовать шифрование AES с размером ключа 128 бит. Любой режим, который вы можете использовать, будет вашим предпочтением. Я бы предпочел CBC.
Просто короткая заметка о CBC против ECB. При шифровании с использованием ECB все 128-битные (в зависимости от размера блока) данные шифруются одним и тем же ключом. Если в незашифрованном виде есть какой-либо шаблон, результирующий зашифрованный текст также будет предсказуемым, независимо от того, насколько хорош алгоритм шифрования.
ЕЦБ:
Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
---------------- ---------------- ----------------
Encrypted: bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
Если вы используете CBC, первый блок получает XOR с IV (вектором инициализации) и шифруется ключом, а второй блок получает XOR с первым блоком, а затем шифруется ключом, третий - со вторым. Полученный шифр тогда менее уязвим для частотного анализа.
Это изображение взято из Wikimedia Commons, свободного хранилища медиа
Недостатком является то, что вы не можете распараллелить шифрование / дешифрование, поскольку вам нужен результат предыдущего блока, поэтому он может быть медленнее. Но на практике это не имеет никакого значения.
Глядя на ссылку, которую вы включили, он говорит, что примет несколько различных режимов, в том числе CBC. Если у вас нет особых причин не использовать его, используйте AES-128-CBC. Режим CBC - хороший режим общего назначения. Вам также нужно будет понять использование отступов (используйте PKCS#5 или PKCS#7, что позволяет ваша система) и вектор инициализации IV, чтобы режим CBC работал правильно.
Не используйте режим ECB, так как он небезопасен и пропускает информацию.
Вот aes-128-cbc
а также aes-128
, aes
обозначает расширенный сервис шифрования, 128
это битрейт, и CBC
это режим шифрования.
Тем не менее, это читается и используется только в OPEN SSL
Форматы. До открытия SSL, PHP использовался mcrypt_encrypt
который не был должным образом разработан (более старые версии PHP).aes-128
может также ссылаться на rijndael
при использовании mcrypt
,