Интернет магазин китайских планшетных компьютеров



Компьютеры - 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 выполняются следующие операции:

  1. save_abc
  2. pass
  3. key_schedule
  4. pass
  5. key_schedule
  6. pass
  7. feedforward

Здесь save_abc сохраняет значение hi:

aa = a 
bb = b 
cc = c 

pass означает:

round
round
round
round
round
round
round
round
Один раунд преобразований Tiger

где 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.



Просмотров: 4812


<<< Tcpcrypt
Time Stamp Protocol >>>