Добрый вечер
Что-то никак не пойму, как оно должно быть правильно. Есть PHP, в нем вызываются функции MCrypt. Если в простом блочном режиме (ECB), то все нормально, что у меня в приложении, что на сайте в PHP Решил запустить это дело в CBC режиме. В результате имею правильно зашифрованный первый блок, после чего начинаются различия. Расшифровывается блок моим приложением правильно.
Собственно сама идея CBC везде разжевана:
шифрование: 0. Задание начального вектора 1. XOR блока с вектором 2. Шифрование блока 3. Обновление вектора зашифрованным блоком 4. Повторение пока есть данные с п.1
расшифровка: 0. Задание начального вектора 1. Сохранение блока во временную область 2. Расшифровка блока 3. XOR блока с вектором 4. Обновление вектора из временной области 5. Повторение пока есть данные с п.1
Но вот что-то не клеится... Или MCrypt как-то более хитро обновляет вектор для XTEA? Тот же подход, но с AES-128, дает правильный результат
|