Во-первых: я знаю, что AES - это блочный шифр, а не функция хеширования. Однако я застрял в микроконтроллере с очень маленьким объемом оперативной и флеш-памяти, а AES-128 уже реализован на нем и используется по прямому назначению - шифрование.
К сожалению, мне также придется реализовать хеширование функция проверки целостности файлов на том же микроконтроллере. Учитывая ограниченные ресурсы, мне было интересно, можно ли использовать существующий алгоритм AES вместо MD5 для хеширования. Одна из возможностей сделать это:
Теоретически, я думаю, это должно сработать. Если где-то в файле есть поврежденные данные, это приведет к различиям во всех последующих блоках.
Теперь большой вопрос: насколько хорошо этот метод будет работать с точки зрения коллизий? Или, иначе говоря: насколько хорошо будет окончательный "хэш" распространяться?