Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: XTEA CBC mode
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
toweroff
Добрый вечер

Что-то никак не пойму, как оно должно быть правильно.
Есть 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, дает правильный результат
toweroff
В общем, как обычно - дело было не в бобине... а в порядке расположения байт в памяти

в общем модификация вылилась в следующие поправки:

шифрование
1. Вектор нужно перевернуть
3. Блок перевернуть

расшифровка
3. вектор перевернуть
4. временную область перевернуть

Можно закрыть тему
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.