Курсовая работа: Хеш-функция UMAC

bit(S,t-1) + bit(S,t).

uint2str(n,i): и-тый байт строки, например str2uint(S) = n.

3.1.4 Математические операции в строках

Одно из первичных действий в UMAC – повторение применения операций сложения и умножения в строках. Действия "+_32", "+_64", и "*_64" определены:

"S +_32 T" as uint2str(str2uint(S) + str2uint(T) mod 2^32, 4),

"S +_64 T" as uint2str(str2uint(S) + str2uint(T) mod 2^64, 8), and

"S *_64 T" as uint2str(str2uint(S) * str2uint(T) mod 2^64, 8).

Эти операции отлично выполняются на современных компьютерах.

3.2 Алгоритм UHASH

Вход:

K, строка длиной KEYLEN байт.

M, строка длиной меньше чем 2^67 бит.

taglen, числа 3,4, 8, 12 or 16.

Выход:

Y, строка длиной taglen байт.

Вычисление Y использует следующий алгоритм:

//

// одна целая итерация за 3 байта для выхода

//

iters = taglen / 3

//

// определим общее число требуемых ключей при помощи KDF.

// L1Key reuses most key material between iterations.

//

L1Key = KDF(K, 1, 1024 + (iters - 1) * 16)

L2Key = KDF(K, 2, iters * 24)

L3Key1 = KDF(K, 3, iters * 64)

L3Key2 = KDF(K, 4, iters * 4)

//

// Для каждой итерации устанавливаем свой ключ и делаем трехслойный hash.

// If bytelength(M) <= 1024, then skip L2-HASH.

К-во Просмотров: 436
Бесплатно скачать Курсовая работа: Хеш-функция UMAC