Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Хеш-функції, що застосовуються на практиці
Серед розповсюджених сьогодні хеш-функцій можна назвати такі: MD5, RIPEMD-160, група функцій SHA: SHA-1, SHA-256, SHA-384, SHA-512. Всі ці функції за своєю природою ітераційні, але відрізняються параметрами, серед яких в першу чергу слід вказати довжину коду на виході. Функція MD5 створює рядки довжиною 128 бітів, SHA-1 – 160 бітів, довжина вихідних кодів інших функцій вказана у назві. Всі перелічені функції є похідними від алгоритму MD4, який розглянемо детально. В MD4 застосовуються три порозрядні функції від трьох 32-бітових аргументів. f(u, v, w) = uv Ú uw, g(u, v, w) = uv Ú uw Ú vw, h(u, v, w) = u Å v Å w. Впродовж всього алгоритму відстежується поточний хеш-стан (H1, H2, H3, H4), де Hi – 32-бітові змінні, початкові значення яких визначені наступним чином. H1 = ’67452301h’, H2 = ’EFCDAB89h’, H3 = ’98BADCFEh’, H4 = ’ 10325476h’. В алгоритмі використовуються константи, значення яких залежить від номера раунду і номера кроку. Раунд – це група послідовних кроків алгоритму. Алгоритм складається з трьох раундів по 16 кроків у кожному. Всі кроки алгоритму пронумеровані від 0 до 47. Кроки 0 – 15 утворюють перший раунд, 16 – 31 - другий, а 32 – 47 – третій. Якщо позначити індексом i номер раунду, а індексом j - номер кроку, то можна сказати, що в алгоритмі використовуються три групи констант yi, i = 1, 3, zj, sj, j = 0, 47. Значення констант представляються наступними масивами. y1-3 = [0, ‘5A827999h’, ‘6ED9EBA1h’], z0-15 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], z16-31 = [0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15], z32-47 = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15], s0-15 = [3, 7, 11, 19, 3, 7, 11, 19, 3, 7, 11, 19, 3, 7, 11, 19], s16-31 = [3, 5, 9, 13, 3, 5, 9, 13, 3, 5, 9, 13, 3, 5, 9, 13], s32-47 = [3, 9, 11, 15, 3, 9, 11, 15, 3, 9, 11, 15, 3, 9, 11, 15]. Потік даних складається з 16 слів, що завантажуються одночасно в масив X[j] (0 ≤ j < 16). Потім виконуються перетворення кожного з завантажених слів: (A, B, C, D) = (H1, H2, H3, H4). Виконується перший раунд. Виконується другий раунд. Виконується третій раунд. (H1, H2, H3, H4) = (H1 + A, H2 + B, H3 + C, H4 + D). Значенням функції хешування є конкатенація H1H2H3H4. Дії, що виконуються у кожному раунді: - раунд 1 for i = 0 to 15 do begin t = A + f(B, C, D) + X[zi] + yi. (A, B, C, D) = (D, t <<< si, B, C); end - раунд 2 for i = 16 to 31 do begin t = A + g(B, C, D) + X[zi] + yi. (A, B, C, D) = (D, t <<< si, B, C); end - раунд 3 for i = 32 to 47 do begin t = A + h(B, C, D) + X[zi] + yi. (A, B, C, D) = (D, t <<< si, B, C); End Застосування еліптичних кривих в криптографії Перевага підходу на основі еліптичних кривих порівняно з іншими полягає у забезпеченні еквівалентного рівня захисту при значно меншій довжині ключа.
У криптографії розглядаються еліптичні криві на скінчених полях характеристики p. Еліптичною кривою називають криву, точки якої задовольняють рівнянню ay2 + bxy + cx2 + dy + ex + f = gx3 + hx2 + kx + l (mod p), (1) де a, b, c, d, e, f, g, h, k, l – коефіцієнти, що є елементами поданого скінченого поля. Інакше кажучи, в лівій частині рівняння довільний поліном F(x, y) другого степеню, а в правій довільний поліном G(x) третього степеню. Надалі будемо вважати, що точки еліптичної кривої E задовольняють рівнянню y2 = x3 + qx + r (mod p), (2) оскільки шляхом заміни змінних завжди можна від форми (1) перейти до форми (2). Форма (2) називається канонічною формою Вейєрштрасса. Крім того, p – просте число, p > 3, q,r Î Fp. Приклади еліптичних кривих наведені на рис. 9.1. Графік в лівій частині рисунку відповідає випадку, коли поліном G(x) має три дійсні корені: -1, 0, 1, а в правій – тільки один.
Операції додавання на множені точок еліптичної кривої На множині точок еліптичної кривої означається операція таким чином, щоб утворилася група. Ця операція позначається символом «+». При визначенні операції множина точок кривої E доповнюється штучною точкою O, що віддалена на нескінченість по вісі y. Координата x точки O невизначена. Це означає, що можна вважати, що ця координата дорівнює будь-якому елементу Fp. Інакше кажучи, кожна вертикальна пряма проходить через точку O. 52 –
53-
Множення точок на число Нехай m – ціле число, а P Î E. Уведемо наступне позначення P + P + … + P (m доданків), m > 0, mP = O, m = 0, - (|m|P) m < 0.
Обчислення величини mP (результату m -кратного виконання операції «+» є аналогом піднесення до степеню в мультиплікативній групі. Ця операція виконується згідно з наступним алгоритмом. Вхід: точка P Î E; ціле число m > 0. Вихід: mP. EC_Multiply(P, m) if m = 0 return (O). if m (mod 2) = 0 return (EC_Multiply(P + P, m / 2)); else return (P + EC_Multiply(P, m - 1)). Наприклад, обчислюючи EC_Multiply(P, 14), поданий алгоритм виконує чотири рекурсивні виклики. EC_Multiply(P, 14) = EC_Multiply(P + P, 7) = 2P + EC_Multiply(2P + 2P, 3) = 2P + 4P + EC_Multiply(4P + 4P, 1) = 2P + 4P + 8P + EC_Multiply(8P + 8P, 0) = 2P + 4P + 8P + O.
Результат дорівнює 14P. Слід зауважити, що розглянутий алгоритм не використовує ніяких властивостей групи, якій належить точка P. Цей алгоритм являє собою реалізацію процесу множення точки на число згідно з визначенням. Часова складність його становить O((log p)3). Існують і більш ефективні алгоритми
|
||||||
Последнее изменение этой страницы: 2017-02-21; просмотров: 209; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.154.41 (0.01 с.) |