Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Tiger (хэш-функция) - Алгоритм30 марта 2011Оглавление: 1. Tiger (хэш-функция) 2. Алгоритм 3. Тестовые векторы 4. Криптоанализ 5. Использование Количество используемых S-box’ов 4. S-box выполняет преобразование 8 бит в 64 бита. То есть в каждом из них 256 64-битных слов и общий размер памяти, требуемой для хранения S-box’ов 4*256*8 = 8096 = 8 Кбайт. Для этого хватает кэша большинства процессоров, хотя могут быть сложности при реализации на микроконтроллерах. Как и в семействе MD4, к сообщению добавляется бит ‘1’, за которым следуют нули. Входные данные делятся на n блоков по 512 бит. Выбираем первый 512-битный блок. Этот блок делится на восемь 64-битных слов x0, x1, …, x7. Порядок байтов little-endian. Берутся три 64-битных регистра с начальными значениями: a = 0x0123456789ABCDEF b = 0xFEDCBA9876543210 c = 0xF096A5B4C3B2E187 Теперь для перехода от значения hi к значению hi + 1 выполняются следующие операции:
Здесь save_abc сохраняет значение hi: aa = a bb = b cc = c pass означает: round round round round round round round round где round: c ^= x a -= t1 ^ t2 ^ t3 ^ t4 b += t4 ^ t3 ^ t2 ^ t1 b *= mul c_i i-й байт c; ^ операция XOR; ti i-й S-box key_schedule генерация ключей, обратимая функция, которая отвечает за то, чтобы изменение небольшого числа бит сообщения x вызвало изменение большого числа бит на следующем выполнении pass: x0 -= x7 ^ 0xA5A5A5A5A5A5A5A5 x1 ^= x0 x2 += x1 x3 -= x2 ^<<19) x4 ^= x3 x5 += x4 x6 -= x5 ^>>23) x7 ^= x6 x0 += x7 x1 -= x0 ^<<19) x2 ^= x1 x3 += x2 x4 -= x3 ^>>23) x5 ^= x4 x6 += x5 x7 -= x6 ^ 0x0123456789ABCDEF где feedforward обратная связь: a ^= aa b -= bb c += cc То есть всего получаем 24 раунда. Конкатенация полученных значений a, b, c дает промежуточное значение хеш-функции hi + 1, которое используется как начальное значение для следующего 512-битного блока данных. Промежуточное значение hn на последнем блоке дает 192-битное значение Tiger/192. Просмотров: 4987
|