Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
full-2.doc
Скачиваний:
11
Добавлен:
10.11.2018
Размер:
936.96 Кб
Скачать

1.4 Результати проведеного аналізу функцій хешування

З проведеного аналізу, можна зробити висновок, що математичний апарат еліптичних кривих представляє собою перспективний базис для побудови хеш-функцій. Безпека таких функцій хешування засновується на складній математичній задачі дискретного логарифмування в групі точок еліптичної кривої. Математичний апарат еліптичних кривих має суттєві переваги наприклад, достатні гарантії того, що задача дискретного логарифмування в групі точок еліптичної кривої буде залишатися в межах експоненційної складності. Найвідомішою функцією хешування на основі математичного апарату еліптичних кривих є ECOH, яка була єдиною функцією хешування на конкурсі SHA-3, що базувалася на математичному апараті еліптичних кривих.

В зв’язку з цим, для розробки програмного засобу хешування на основі еліптичних кривих обрано саме алгоритм ECOH.

2 Розробка структури і алгоритму програмного засобу

2.1 Розробка структури програми та взаємодії модулів

Для реалізації функції хешування на основі математичного апарату еліптичних кривих необхідно розробити бібліотеку процедур. В цю бібліотеку доцільно включити такі модулі:

  1. Засоби арифметики багатократної точності.

  2. Засоби арифметики скінченних полів характеристики 2 степеня розширення з реалізацією таких операцій як додавання, множення та ін. в поліноміальному базисі.

  3. Засоби арифметики мультиплікативної групи точок еліптичних кривих.

  4. Модуль в якому описані константи для арифметики багатократної точності.

  5. Модуль в якому описані вхідні параметри скінчених полів.

  6. Модуль в якому описані вхідні параметри еліптичних кривих та скінчених полів.

Логічний зв’язок між модулями приведено на рис. 2.1.

Кожна бібліотека вміщує в себе ряд функцій, констант, кожна з яких має своє призначення та специфіку використання.

Рисунок 2.1 - Модулі програмного засобу

Повна структура програмного засобу представлена на рис. 2.2.

Рисунок 2.2 – Структура програмного засобу

Усі розглянуті на рисунках модулі взаємодіють між собою викликаючи відповідні функції на виконання.

2.2 Розробка алгоритму обчислення хешу на основі еліптичних кривих

За основу для нашої розробки взято функцію хешування ECOH. Для опису загального алгоритму функції хешування ECOH введемо такі умовні позначення:

– доповнене вхідне повідомлення;

– вхідне повідомлення;

– кількість нулів, які використовуються для доповнення повідомлення;

– довжина блоків, на які розбивається вхідне повідомлення, біт;

– частина довжиною біт;

– індекс блоку повідомлення;

– довжина блоку, який використовується для індексації, біт;

– кількість блоків у доповненому вхідному повідомленні;

– послідовність бітів довжиною ;

– довжина елементів кінцевого поля еліптичної кривої, біт;

– довжина блоку лічильника, біт;

– точка еліптичної кривої;

-координата ;

-координата ;

– точка еліптичної кривої;

– базова точка еліптичної кривої;

– довжина хеш-коду, біт;

– операція об‘єднання;

– операція виключного АБО (XOR).

Алгоритм 1.1. Функція хешування ECOH

  1. Задати , де – найменше позитивне число таке, щоб довжина націло ділилась на ;

  2. Розділити на блоки з довжиною кожного ;

  3. Задати , де -бітна репрезентація цілого числа , яке збільшується від 0 до ;

  4. Задати , де -бітна репрезентація кількості бітів в повідомленні ;

  5. Задати , де – послідовність бітів довжиною , що репрезентує найменше позитивне число таке, що репрезентує -координату точки еліптичної кривої ;

  6. Задати таке, що крайній правий біт дорівнює крайньому лівому біту ;

  7. Обчислити ;

  8. Результатом буде -бітна репрезентація операції .

Отже, вхідне повідомлення доповнюється однією одиницею та необхідною кількістю нулів до такої довжини, щоб воно було кратним . Доповнене повідомлення розбивається на блоки, кожен з яких має довжину . Кожен блок індексується шляхом об‘єднання з репрезентацією індексу довжиною , в результаті чого утворюється – проіндексований блок доповненого вхідного повідомлення. Обчислюється , як результат виключного АБО всіх блоків доповненого вхідного повідомлення та об‘єднання його з бітовим відображенням довжини повідомлення . Значення фактично виконує роль контрольної суми вхідного повідомлення. Кожен проіндексований блок перетворюється в точку еліптичної кривої за допомогою пошуку такої точки, -координата якої відповідала б доповненому до необхідної довжини значенню . Пошук відбувається в циклі, лічильник якого збільшується кожного разу, коли для значення не знайдено жодної точки, яка б належала еліптичній кривій . Результуюча точка отримується шляхом додавання всіх точок та на заключному кроці перетворюється у -бітне значення хеш коду. Саме у цьому перетворенні присутня операція скалярного множення , яка повинна ставити у відповідність задачі пошуку колізій задачу вирішення проблеми дискретного логарифмування у групі точок еліптичної кривої.

Блок-схема алгоритму функції хешування ECOH наведена у додатку А.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]