Високопродуктивна реалізація протоколів захисту інформації на базі операцій модулярної арифметики
Підвищення продуктивності обчислення операцій модулярної арифметики над числами великої розрядності при реалізації протоколів захисту інформації в комп’ютерних мережах. Розробка алгоритмів, які враховують специфічні особливості виконання операцій.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | автореферат |
Язык | украинский |
Дата добавления | 28.08.2014 |
Размер файла | 67,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
”КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
УДК 004.4 (043.2)
Спеціальність 05.13.13 - Обчислювальні машини, системи та мережі
АВТОРЕФЕРАТ
дисертації на здобуття наукового ступеня кандидата технічних наук
Високопродуктивна реалізація протоколів захисту інформації на базі операцій модулярної арифметики
Рамзі Анвар Саліба Сунна
Київ 2006
Дисертацією є рукопис.
Робота виконана в Національному технічному університеті України ”Київський політехнічний інститут” на кафедрі обчислювальної техніки.
Науковий керівник - член -кореспондент Національної Академії Наук України, доктор технічних наук, професор Самофалов Костянтин Григорович, НТУУ ”КПІ”, радник ректора
Офіційні опоненти: доктор технічних наук, професор Печурін Микола Капітонович, Національний авіаційний університет, професор кафедри обчислювальних машин, систем та мереж
кандидат технічних наук, Алішов Надір Ісмаіл-огли, Інститут кібернетики ім. В.М. Глушкова НАН України, провідний науковий співробітник.
Провідна установа: Інститут проблем моделювання в енергетиціім. Г.Є. Пухова НАН України, відділ спеціальних засобів моделювання
Захист відбудеться 16 жовтня 2006 р. о 14-30 годині на засіданні спеціалізованої ради Д 26.002.02 у НТУУ ”КПІ” (м. Київ, проспект Перемоги 37, корп.18,ауд.306)
Відзиви на автореферат у двох примірниках, завірені печаткою установи, просимо надсилати на адресу: 03056, м. Київ, проспект Перемоги 37, вченому секретарю НТУУ ”КПІ”.
З дисертацією можна ознайомитися в бібліотеці Національного технічного університету України ”Київський політехнічний інститут”.
Автореферат розісланий 14 вересня 2006 р.
Вчений секретар спеціалізованої вченої ради Д 26.002.02 Орлова М.М. кандидат технічних наук, доцент
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ
Актуальність теми. Однією з домінуючих тенденцій сучасного етапу розвитку інформаційних технологій є інформаційна інтеграція на основі комп'ютерних мереж. Забезпечуючи якісно більш високий рівень розв'язання прикладних задач, інформаційна інтеграція розширюється на всі рівні комп'ютерної обробки інформації, включаючи вбудовані мікропроцесори та мікроконтролери, які на теперішній час складають більше половини термінальних пристроїв комп'ютерних мереж.
Важливою передумовою ефективної взаємодії обчислювальних термінальних пристроїв в комп'ютерних мережах є забезпечення високої продуктивності при реалізації ними існуючих мережових протоколів. Найбільш критичними з точки зору обчислювальної реалізації протоколів мережового обміну є операції модулярної арифметики, що виконуються над числами великої розрядності, яка значно перевищує розрядність процесорів. Такі обчислення передбачуються існуючими протоколами захисту інформації в мережах.
Для широкого класу протоколів, що використовують технологію відкритих ключів рівень захищеності прямо пов'язаний з розрядністю чисел, якими вони оперують. На теперішній час, для досягнення прийнятного для більшості застосувань рівня захищеності, необхідна довжина чисел становить 1024-2048 розрядів з перспективою її зростання в найближчі роки до 4096.
Зростання розрядності чисел, з якими оперують існуючі протоколи захисту інформації в мережах призводить до сповільнення їх реалізації на комп'ютерах загального призначення. З особливою гостротою ця проблема стоїть для малорозрядних вбудованих мікропроцесорів та мікроконтролерів.
З іншого боку, стала тенденція росту пропускної здатності каналів передачі даних комп'ютерних мереж вимагає адекватного зростання швидкості реалізації протоколів захисту інформації як на комп'ютерах загального призначення, так і на малорозрядних мікроконтролерах.
Наведені фактори визначають розробку нових підходів до прискорення програмної реалізації операцій модулярної арифметики при їх застосування в протоколах захисту інформації, як важливу та актуальну проблему, від вирішення якої значною мірою залежить ефективність локальних та глобальних комп'ютерних мереж.
Зв'язок роботи з науковими програми, планами, темами. Дисертаційне дослідження проводилось в рамках держбюджетної теми ”Розробка цифрових систем обробки даних з високошвидкісними комутаторами” (номер держреєстрації 0102U000222).
Мета і завдання дослідження.
Метою роботи є підвищення продуктивності обчислення операцій модулярної арифметики над числами великої розрядності при реалізації протоколів захисту інформації в комп'ютерних мережах за рахунок розробки методів та алгоритмів, які враховують специфічні особливості виконання указано класу операцій в системах захисту інформації.
Об'єктом досліджень є обчислювальні процедури реалізації мультиплікативних операцій модулярної арифметики над числами великої розрядності при їх застосуванні в протоколах захисту інформації.
Предметом досліджень є способи, алгоритми та засоби підвищення продуктивності обчислення операцій модулярної арифметики при їх використані для реалізації протоколів захисту інформації в комп'ютерних мережах. модулярний арифметика протокол комп'ютерний
Основні задачі дослідження у відповідності до поставленої мети полягають у наступному:
Огляд протоколів та алгоритмів захисту інформації в комп'ютерних мережах, аналіз особливостей їх практичного використання, обґрунтування вимог до обчислювальних процедур їх реалізації.
Огляд алгоритмів модулярного множення та експоненціювання. аналіз можливостей підвищення продуктивності їх реалізації. Визначення напрямків досліджень виходячи з особливостей використання мультиплікативних операцій модулярної арифметики в протоколах захисту інформації.
Дослідження можливостей реалізації модулярної редукції при постійному модулі в рамках класичного алгоритму модулярного множення та розробка на цій основі алгоритму, який використовує передобчислення, що дозволяє зменшити обчислювальну складність модулярного множення.
Аналіз обчислювальних процедур алгоритму Монтгомері і розробка на цій основі модифікації модулярного множення Монтгомері для сталого модуля, обчислювальна складність якого зменшена за рахунок використання результатів передобчислень, що залежать від модуля.
Розробка алгоритму прискореного піднесення до квадрату з використанням модулярної редукції Монтгомері.
Розробка модифікації алгоритму модулярного множення Монтгомері при сталих співмножнику та модулі, який має меншу складність за рахунок використання результатів передобчислень.
Розробка методу прискореної обчислювальної реалізації модулярного експоненціювання при сталому модулі з використанням редукції Монтгомері.
Методи дослідження базуються на теорії імовірностей та математичної статистики, теорії булевих функцій та комбінаторики, теорії організації обчислювальних процесів, а також на використанні методів моделювання.
Наукова новизна одержаних результатів полягає в наступному:
- Розроблено новий алгоритм модулярного множення, що відрізняється від класичного табличним способом виконання модулярної редукції при сталому модулі і забезпечує суттєве зменшення обчислювальної складності за рахунок використання результатів передобчислень.
- Запропонована модифікація алгоритму модулярного множення Монтгомері для сталого модуля, обчислювальна складність якого близька до теоретичного мінімуму і вдвоє менша в порівнянні з алгоритмом Монтгомері.
- Розроблено метод прискореної обчислювальної реалізації модулярного експоненціювання з використанням редукції Монтгомері на основі запропонованих алгоритмів модулярного піднесення до квадрату і множення на сталий співмножник для малорозрядних мікропроцесорів, мікроконтролерів та смарт-карт, який забезпечує вшестеро більшу продуктивність в порівнянні з алгоритмом модулярного експоненціювання Монтгомері.
Практичне значення одержаних результатів результатів роботи визначається створенням на основі теоретично розроблених методів прискорення обчислення операцій модулярного множення та модулярного екпоненціювання відповідних програмних засобів, які реалізують ці методи. Найбільш практично вагомою є запропонований метод швидкої реалізації модулярного експонеціювання, який базується на комплексному використанні запропонованих алгоритмів модулярного піднесення до квадрату та модулярного множення на постійне число і забезпечує шестрикартне зростання продуктивності реалізації протоколів обміну ключами, автентифікації віддалений користувачів та цифрового підпису абонентів комп'ютерних мереж.
Практичне використання запропонованих підходів до організації прискореного обчислення мультиплікативних операцій модулярної арифметики при їх застосуванні в мережових протоколах захисту інформації дозволяє суттєво підвищити продуктивність їх реалізації і, відповідно, ефективність використання в комп'ютерних мережах.
Особистий внесок здобувача полягає в теоретичному обґрунтуванні одержаних результатів, експериментальній їх перевірці та дослідженні, а також в створенні програмних продуктів для практичного використання одержаних результатів. У роботах, що написані в співавторстві, автору належать: [2] - розробка нового алгоритму модулярного множення, що відрізняється від класичного табличним способом виконання модулярної редукції та забезпечує суттєве зниження обчислювальної складності за рахунок використання результатів передобчислень для малорозрядних мікропроцесорів, вбудованих мікроконтролерів та смарт-карт, [3] - розробка методу прискореної обчислювальної реалізації модулярного експоненціювання на малорозрядних мікропроцесорах, мікроконтролерах та смарт-картах, який забезпечує вшестеро більшу продуктивність реалізації модулярного експоненціювання над числами великої розрядності в порівнянні з методом Монтгомері, [4] - розробка підходу до контролю помилок при виконання операцій модулярного множення над числами великої розрядності з використанням булевих перетворень спеціальних класів, [5] - розробка структур апаратних засобів для високопродуктивної реалізації операцій модулярного множення з використанням табличної пам'яті передобчислень.
Апробація результатів дисертації. Основні результати дисертації доповідались та обговорювались на:
V-й Міжнародній науково-практичній конференції Современные информационные и электронные технологии., 17-21 травня 2004 р. м. Одеса.
VІ-й Міжнародній науково-практичній конференції студентів, аспірантів та молодих вчених. Системний аналіз та інформаційні технології, 1-3 липня 2005 м.Київ.
Публікації Основні результати роботи викладені в 5 публікаціях, з них 4 статті - в провідних фахових виданнях.
Структура та об'єм роботи. Дисертаційна робота складається з вступу, чотирьох розділів, висновків та додатків. Загальний обсяг роботи складає 143 сторінки, робота містить 8 малюнків, 10 таблиць та список використаної літератури на 95 найменувань, 2 додатки.
ОСНОВНИЙ ЗМІСТ
У вступі обґрунтована актуальність проблеми підвищення продуктивності реалізації протоколів, пов'язаних з захистом інформації в комп'ютерних мережах, в основі яких лежать мультиплікативні операції модулярної арифметики, що виконуються над числами, розрядність яких суттєво перевищує розрядність процесора. Особливо ця проблема актуальна для малорозрядних термінальних пристроїв комп'ютерних мереж. Сформульована мета роботи, основні задачі досліджень, наведені головні нові наукові результати, одержаних в ході досліджень та їх практичне значення для сучасного етапу розвитку мережових технологій, одержаних результатів.
У першому розділі дисертації виконано аналіз протоколів захисту інформації в комп'ютерних мережах.
Основним алгоритмом, що лежить в основі значної частини протоколів захисту інформації є алгоритм шифрування RSA. Процес шифрування блоку Х повідомлення виконується у вигляді , а процес відновлення реалізується у відповідності з виразом: .
Широко використовується в протоколах захисту інформації алгоритм Ель-Гамаля. При шифруванні блоку Х повідомлення випадково вибирається ціле k і обчислюються , де g,M - частини ключа. Розшифрування виконується у відповідності з виразом: .
В основі протоколів автентифікації користувачів мережі та перевірки автентичності повідомлень лежить стандартизований алгоритм цифрового підпису DSS. Автентифікація виконується за наступною схемою: користувач формує при заданих p,q,r, що є відкритою частиною ключа параметрах:
Числа r та s відсилаються системі, яка виконує обчислення:
Повідомлення М вважається автентичним, якщо виконується .
Проведений аналіз практичного використання протоколів захисту інформації в комп'ютерних мережах показав, що переважна їх більшість має за основу криптографічних властивостей важкорозв'язувані теорії чисел.
Відповідно, обчислювальної основою криптографічних механізмів, на яких базуються мережові протоколи захисту інформації є мультиплікативні операції модулярної арифметики над числами, розрядність яких становить 1024-4096. Основними обчислювальними операціями вказаних протоколів є модулярне множення та модулярне експоненціювання.
Аналіз практичного використання протоколів, основаних на криптографічних алгоритмах несиметричного шифрування типу RSA, El-Gamal, алгоритму цифрового підпису -DSS показує, що їх ключі змінюються відносно рідко, оскільки їх відкрита частина ідентифікує абонентів комп'ютерної мережі. Відповідно, модуль М, що є частиною відкритого ключа, можна вважати постійним і зменшити, за рахунок цього, обчислювальну складність мультиплікативних операцій модулярної арифметики.
Вважаючи на важливість ефективної реалізації протоколів захисту інформації, що базуються на операціях модулярної арифметики, до теперішнього часу запропоновано ряд алгоритмів, найбільш відомими з яких є класичний та Монтгомері.
При обробці чисел великої розрядності n на k-розрядному процесорі, число А представляється за основою b, де b - кількість k -розрядних чисел: b = 2k : А={as-1,…,a1,a0}, 0 aj < b, j{0,…,n-1}: . Базовою операцією модулярної арифметики в протоколах захисту інформації є модулярне множення: R=AB mod M, причому 2n-1 M< 2n, A<M, B<M. Кожне з чисел A, B і M складаються з s=n/k слів: , де aj, bj, mj - k-розрядні слова, j{0,…,s-1}.
Модулярне множення складається з обчислення добутку АВ та модулярної редукції - віднаходження залишку АВ по модулю М: AB mod M. Всі алгоритми модулярного множення відрізняються способом виконання модулярної редукції.
В нотації мови С++ класичний алгоритм модулярного множення без деталізації способу реалізації процедури модулярної редукції Reduce(X) може бути представлений у такому вигляді:
1. R = 0;
2. for ( i=0; i <= s-1; i ++)
{
2.1. Y = 0;
2.2. for ( j = 0; j <s; j ++ ) Y += (ai * bj ) << ( j *k);
2.3. R+= Reduce(Y) ;
2.4. if ( i < s -1 )
{
2.4.1. B <<= k ;
2.4.2. Reduce (B) ;
}
}
3. Reduce( R) ;
В класичному алгоритмі модулярна редукції виконується з використанням операції цілочисельного ділення 2k-розрядного діленого на k-розрядний подільник з одержанням части та залишку. З огляду на те, що операція ділення n-розрядних чисел на k-розрядному процесорі (n>>k) виконується доволі неефективно, реалізація редукції в класичному алгоритмі потребує (s+2.5) операцій процесорного множення і s операцій процесорного ділення.
Щоб уникнути операції ділення багаторозрядних чисел при реалізації модулярної редукції запропоновано ряд алгоритмів, найбільш відомими з яких є алгоритми Баретта та Монгомері.
Найбільш афективно модулярна редукція реалізується в алгоритмі Монтгомері: шляхом переходу від редукції за модулем М до редукції за числом, що є степенем 2.
Застосування модулярного множення за Монтгомері вимагає додаткових операцій, що виконуються до і після власне множення. На практиці модулярне множення з використанням алгоритму Монтгомері доцільне лише я якості базової операції модулярного експоненціювання. При обчисленні XY mod M, множення виконується тисячі разів, проте додаткові операції виконуються лише до та після модулярного експоненціювання і, відповідно не мають суттєвого впливу на обчислювальну складність модулярного експоненціювання.
Вихідними даними для модулярного множення по Монтгомері являються: модуль M, співмножники А і В, а також попередньо обчислена модулярна інверсія M = - M-1 mod 2k. В процесі виконання алгоритму ітераційно формується n-розрядний код результату R=ABU mod M, де U - модулярна інверсія числа 2n за модулем M, тобто U = (2n)-1 mod M. Сам алгоритм Монтгомері можна представити з використанням нотацій С++ в наступному вигляді:
1. R = 0.
2. for ( j=0; j <= s-1; j++)
{
2.1. pj = (r0 + aj b0)M mod 2k;
2.2. R= ( R + ajB + pjM)/2k;
}
3. if ( R M) R = R - M.
Щоб отримати правильний результат XY mod M потрібно виконати додаткові обчислення над R : помножити одержаний результат на 2n mod M.
Проведений аналіз алгоритму Монтгомері показав, що його обчислювальна складність модулярного множення, що виконується за цим алгоритмом, без урахування додаткових перетворень близька до теоретичного мінімуму. Аналіз чисельних публікацій, присвячений розвитку ідей алгоритму Монтгомері значною мірою підтверджують цю оцінку.
Характеристики обчислювальної складності алгоритмів модулярного множення наведені в таблиці 1.
Таблиця 1. Кількість операцій процесорного множення та ділення, потрібних для обчислення AB mod M в різних алгоритмах модулярного множення.
Алгоритм |
Кількість операцій множення для обчислення АВ |
Кількість операцій множення для об- числення залишку |
Кількість операцій ділення |
|
Класичний |
s2 |
s2 +2.5s |
s |
|
Баретта |
s2 |
s2 + 4s |
0 |
|
Монтгомери |
s2 |
s2 + s |
0 |
Аналіз наведених даних свідчить про те, що при постійному модулі можуть бути ефективно модифіковані класичний алгоритм модулярного множення та алгоритм Монтгомері.
В другому розділі роботи пропонуються алгоритми модулярного множення з фіксованим модулем і зменшеною обчислювальною складністю. Один з них має за основу класичну схему модулярного множення, а другий являє собою модифікацію алгоритму Монтгомері.
В класичному алгоритмі процедура модулярної редукції Reduce(X) виконується над частковим добутком ajB та зсунутим на k розрядів ліворуч кодом множеного B. В обох випадках, довжина числа Х, над яким реалізується редукція не перевищує (s+1) k-розрядних слів або (s+1)k=(n+k) двійкових розрядів х0, х1, х2,…,хn+k-1:
Число Х може бути представлено у вигляді суми двох компонент: (n-1)-розрядного числа X, яке співпадає з n-1 молодшими розрядами Х і (n+k)-розрядного числа X, яке складається з (k+1) старших розрядів, співпадаючих з однойменними розрядами Х і n-1 молодших розрядів, що дорівнюють нулю:
Згідно з властивістю конгруентності для модулярної редукції, залишок X mod M може бути представлений у вигляді модулярної редукції суми залишків X та X:
В силу того, що старший, (n-1)-вий розряд модуля М дорівнює одиниці, а Х являє собою (n-1)-розрядне число, то X<M і, відповідно, Xmod M = X. Число X має тільки k+1 значущих розрядів (інші n-1 молодших розрядів X дорівнюють нулю). Таким чином, X і відповідно X mod M може приймати тільки 2k+1 різних значень. Всі можливі n-розрядні значення X mod M для відповідних значень X можуть бути попередньо обчислені та збережені в пам'яті у вигляді таблиці. Якщо позначити через Z двійковий код, що складається з (k+1) старших значущих розрядів X : а через T(Z) - n-розрядний код табличного значення T(Z) = X mod M, то процедура модулярної редукції Reduce(X) реалізується у відповідності з наступним виразом:
Обчислювальна складність реалізації модулярної редукції при цьому визначається щонайбільше двома операціями типу додавання над (n+k)-розрядними числами: першої для обчислення T(Z)+X і другої для виконання віднімання (T(Z)+X)-M, якщо T(Z)+XM. Оскільки 0T(Z)+X<2M, для обчислення залишку (T(Z)+X) mod M потрібно не більше одного віднімання n-розрядних чисел. Виходячи з цього, час реалізації процедури модулярної редукції не перевищить 2(s+1)ta, при середньому значенні 1.5sta. Об'єм пам'яті, потрібний для зберігання попередньо обчислених всіх можливих значень T(Z) складає 2k+1n бітів або 2k+1s k-розрядних слів.
Запропонований підхід є особливо ефективним при реалізації модулярного множення на малорозрядних мікропроцесорах, мікроконтролерах та смарт-картах. В цьому випадку, об'єм пам'яті для зберігання результатів передобчислень при постійному модулі виявляється доволі прийнятним з точку зору реалізації для більшості використань. Наприклад, для реалізації прискореного модулярного множення 1024-розрядних чисел на 8-розрядному мікроконтролері об'єм пам'яті становить всього 29128=216 байт (64 Кбайтів).
При реалізації запропонованого методу прискорення модулярного множення на процесорах розрядністю 16 и більше, об'єм потребуємої пам'яті суттєво зростає, що знижує ефективність застосування передобчислень.
Для зменшення об'єму табличної пам'яті результатів передобчислень T(Z) пропонується організувати її у вигляді декількох секцій.
Сутність пропонуємої організації таблиць передобчислень полягає в тому, що значення X розділяється на q складових: що мають розрядності відповідно n+r1, n+r1+r2, …, n+r1+…+rq, причому r1+r2+…+rq=k+1. Кожна i-та складова Xi (i=1,…,q) включає ri старших значущих розрядів, що співпадають з розрядами числа X ( h=0 для i=1 і h=r1+…+ri-1 для i>1), а інші молодші розряди дорівнюють нулю:
Тоді, в відповідності з властивістю конгруентності для модулярної редукції залишок X mod M може бути представлено у вигляді:
Для обчислення кожного із значень Xi mod M пропонується використати результати передобчислень, які виконуються для всіх можливих кодів Xi. Оскільки кількість значущих (ненульових) розрядів в коді Xi дорівнює ri , то число різних значень Xi становить , а об'єм пам'яті для зберігання всіх можливих значень Xi mod M відповідно становить бітів. Якщо позначити через Zi двійковий ri-розрядний код, що містить тільки ri старших значущих розрядів Xi, то:
Якщо позначити через Ti(Zi) - n-розрядний код табличного значення Ti(Zi) = Xi mod M, то процедура модулярної редукції реалізується у відповідності з наступним виразом:
Загальний об'єм табличної пам'яті для зберігання T1(Z1),T2(Z2),…,Tq(Zq) становить бітів.
Використання багатосекційних таблиць передобчислень дозволяє суттєво зменшити об'єм пам'яті для їх зберігання. Наприклад, за умов наведеного вище прикладу реалізації прискореного множення 1024-разрядних чисел на 8-розрядному мікроконтролері при двосекцій пам'яті (q=2, r1 =5, r2=4), об'єм потрібної для зберігання таблиць пам'яті становитиме всього 1024(25+24)= 101048 біт або 6144 байт, що в 10.67 раз менше в порівнянні з односекційною організацією табличної пам'яті.
З іншого боку, використання багатосекційної організації табличної памяті має наслідком збільшення часу виконання модулярної редукції. Загальна кількість операцій процесорного додавання становить (q+1.5)(s+1).
Важливим аспектом аналізу ефективності запропонованого алгоритму модулярного множення є оцінка часових затрат на програмну реалізацію на k-розрядному процесорі и порівняння її з найефективнішим на сьогоднішній день алгоритмом Монтгомері.
Розроблений алгоритм прискореного модулярного множення на основі класичного, з використанням передобчислень включає s циклів. Кожний j-тий (j=0,…,s-1) з цих циклів реалізує обчислення ajB, віднаходження залишку R = ajB mod M, зсув В на k розрядів з наступною модулярною редукцією для віднаходження нового значення В: B=B2k mod M. Таким чином, процедура модулярної редукції на кожному циклі виконується двічі і потребує в сумі 3(s+1) операцій процесорного додавання. В свою чергу, обчислення часткового добутку ajB складається з s операцій процесорного множення ajbe, де індекс e послідовно приймає значення від 0 до s-1, і, в середньому, 3-х операцій процесорного додавання для добавлення 2k-розрядного результату множення ajbe к частковій сумі. Таким чином, програмна реалізація модулярного множення за запропонованим алгоритмом на k-розрядному процесорі потребує s2 операцій процесорного множення та 3s2 + 7.5s+1.5 операцій процесорного додавання. При цьому, реалізація власне множення АВ потребує s2 операцій множення та 3s операцій процесорного додавання, а модульна редукція - 3s(s+1)+1.5(s+1) операцій типу додавання. Відповідно, значення середнього часу Т1 програмної реалізації модулярного множення при використанні однієї таблиці передобчислень визначається наступним виразом:
де tm - час виконання процесорного множення, ta -час операції процесорного додавання, w = tm/ta.
В порівнянні з алгоритмом Монтгомері, розроблений алгоритм забезпечує підвищити продуктивність програмної реалізації модулярного множення в d разів:
Для найбільш розповсюджених на практиці розрядностей (від 1024 до 2048) чисел, що використовуються при виконанні модулярного множення при реалізації протоколів захисту інформації та невеликої розрядності процесору (k=8), величина s є достатньо великою, так, що s2>>s, і коефіцієнт d прискорення може бути, з достатньою для порівняльної оцінки точністю, представлено у вигляді:
Результати проведених експериментальних досліджень показали, що використання запропонованого алгоритму модулярного множення дозволяє підвищити продуктивність програмної реалізації на 8-розрядному контролері в порівнянні з алгоритмом Монтгомері приблизно в 1.8 раз. При цьому складність програми за запропонованим алгоритмом приблизно в двоє менша в порівнянні з програмою, що реалізує алгоритм Монтгомері.
При використанні q-секційної организації таблиць передобчислень час Tq програмної реалізації модулярного множення за запропонованим алгоритмом збільшується в порівнянні з Т1 і визначається наступним виразом:
Коефіцієнт dq прискорення реалізації операції модулярного множення в порівнянні з алгоритмом Монтгомері визначається наступним чином:
Для приблизної оцінки числового значення коефіцієнта dq при великих значеннях s, для яких s2>>s, можна враховувати тільки відношення складових часу, що мають множник s2:
Проведений аналіз показав, що запропонований алгоритм модулярного множення доцільно використовувати в протоколах захисту інформації при виконанні одиночних операцій модулярного множення, що входять до складу алгоритмів Ель-Гамаля та DSS.
Другий, з запропонований алгоритмів прискореного модулярного множення при фіксованому значенні модуля являє собою модифікацію алгоритму Монтгомері.
Аналіз операцій, що складають алгоритм Монтгомері показує, що в основному циклі має місце дублювання операції множення ajb0: воно виконується в п.2.1. та повторюється п.2.2 в процесі множення k-розрядного коду aj на n-розрядний код B={bs-1,…,b1,b0}. Це дублювання може бути виключено наступним чином. Розділимо код суми r0 + aj b0 на дві k-розрядні складові: gj = (r0 + aj b0) mod 2k и dj = (r0 + aj b0 - gj)/2k так, що pj = dj2k + gj. З урахуванням цього, pj = (dj2k + gj)M mod 2k = gjM mod 2k . Відповідно: pjM = gjМM - tM2k, де t - ціле число. В силу того, що , очевидно, що МM = c2k - 1, де c- ціле. Тоді pjM = gjc2k - gj - tM2k = hj2k -gj , причому hj = gjc - tM. З урахуванням цих перетворень, обчислення п.2.2. базового алгоритму Монтгомери можуть бути представлені таким чином:
R являє собою (n-k)-розрядний код, який може бути отриманий зсувом R на k розрядів праворуч: R= {rs-1,…,r2,r1}=R/2k , (n-k)-розрядный код В отримується зсувом множеного В праворуч на k розрядів: B ={bs-1,…,b2,b1} = =R/2k. Складова ajB являє собою добуток k-розрядного слова множника aj - на код В={bs-1,…,b2,b1}:
При фіксованому модулі М значення h на кожному циклі алгоритма залежить тільки від gj= (r0+ajb0) mod 2k, тобто h може бути представлене у вигляді:
Таким чином, значення h можуть бути попередньо обчислені для всіх 2k можливих g і збережені у вигляді таблиці T(g).
З урахуванням введених перетворень пропонується модифікований алгоритм модулярного множення на основі редукції Монтгомері:
Передобчислення: M=-M-1 mod 2k, T(g) =((gM mod 2k)M)/2k для всіх g{0,1,…,2k-1}.
1. R = 0.
2. for ( j=0; j <= s-1; j++)
{
2.1. vj = r0 + aj b0 ; gj =vj mod 2k; dj = vj/2k;
2.2. R= R/2k + ajB/2k + T(gj) + dj ;
}
3. if ( RM) R = R - M.
Об'єм V1 пам'яті таблиці передобчислень становить 2k(s-1) k-розрядних слів і може бути зменшений шляхом фрагментації таблиці.
Обчислювальна складність модулярного множення за запропонованим алгоритмом без урахування передобчислень визначається s2 операціями процесорного множення і s(2s+3) операціями додавання:
Теоретично, обчислювальна складність модулярного множення АВ mod M не може бути меншою за складність обчислення AB, яка визначається s2 операціями множення і 2s2 операціями додавання. Таким чином, обчислювальна складність запропонованого алгоритму модулярного множення, якщо враховувати тільки операції множення, співпадає з теоретичним мінімумом.
В порівнянні з базовим алгоритмом Монтгомери обчислювальна складність запропонованого алгоритму є меншою в раз:
Така ефективність запропонованого алгоритму практично може бути досягнута лише процесорів розрядності 8 або 16, коли обєм пам'яті таблиць передобчислень не великий.
В третьому розділі роботи розробляються ефективні алгоритми реалізації основної операції обчислювальної операції протоколів захисту інформації - модулярного експоненціювання.
Процес модулярного експоненціювання, тобто обчислення ХЕ mod M зводиться до послідовного виконання log2E=n циклів, в кожному з яких виконується операція піднесення до квадрату одержаного на попередньому циклі результату, а також, в залежності від значення поточного біту степені виконується операція множення. Виходячи з того, в якому порядку аналізуються розряди ступеню Е можна розглядати два типа алгоритмів експоненціювання. На практиці, більшого розповсюдження набули алгоритми, в яких розряди ступеню Е аналізуються починаючи зі старших: це дозволяє в якості співмножника мати постійне число. Алгоритм модулярного експоненціювання цього типу з використанням нотацій С++ наведено нижче:
1. A = 1.
2. for ( j=n; j >=0; j -- )
{
2.2. A = AA mod M ;
2.3. if ( ej == 1) A = AX mod M ;
}
3. Результат: ХЕ mod M.
Проведений аналіз показав, що продуктивність модулярного експоненціювання може бути підвищена шляхом розробки нових алгоритмів виконання модулярного піднесення до квадрату та модулярного множення на постійний множник - базових операцій модулярного експоненціювання.
Запропоновано алгоритм модулярного піднесення до квадрату, який в нотаціях мови С++ може бути представлений наступним чином:
1. R = x0x0; d = x0;
2. for ( j=1; j<=s-1; j++)
{
2.1. p = r0M mod 2k
2.2. R=(R+ pM) >> k;
2.3. X = X>>k;
2.4. t = (2dX)<<(k(j-1))
2.5. z = (x0x0)<<(kj)
2.6. R = R + t + z; d = x0
}
3. p = r0M mod 2k
4. R=(R + pM) >> k;
5. if ( R >= M) R = R - M
Результатом роботи алгоритму є R = Х2U-1 mod M.
Загальна кількість NM операцій процесорного множення, що використовується для реалізації запропонованого алгоритму становить:
В порівнянні з базовим алгоритмом модулярного множення Монтгомері, запропонований алгоритм дозволяє за рахунок виключення надлишкових операцій, прискорити модулярне піднесення до квадрату в 1.3 рази.
Ще однією, потенційною можливістю прискорення модулярного експоненціювання є використання передобчислень при модулярному множенні на постійний множник.
Модифікований алгоритм множення на постійне число на основе рекурсії Монтгомері - Mont(A,B), може бути представлений у вигляді:
1. R = 0.
2. for ( j=0; j <= s-1; j++)
{
2.1. pj = (r0 + Т1(aj))M mod 2k;
2.2. R= ( R + T1(aj) + T2(pj))>>k;
}
3. if ( RM) R = R - M,
В циклі запропонованого алгоритму використовується одна операція процесорного множення і 2s+1 операцій процесорного додавання. Відповідно, при реалізації цього алгоритму модулярного множення потрібно s2 операцій процесорного множення і 2s2+s/2 операцій додавання, в той час, як алгоритм Монтгомері потребує 2s2+s операцій процесорного множення та 4s2 + 4s операцій процесорного додавання.
При постійному модулі М і використанні передобчислень сумарна кількість операцій процесорного множення, необхідних для модулярного піднесення до квадрату становить ns2/2 + n/2. Середня кількість операцій процесорного множення, необхідних для множення на постійне число в процесі модулярного експоненціювання становить, в середньому, sn/2. Таким чином, загальна кількість операцій процесорного множення, необхідних для реалізації модулярного експоненціювання становить:
Порівняльний аналіз кількості необхідних операцій процесорного множення при звичайному модулярному експоненціювання Монтгомері і з використанням запропонованих алгоритмів показує що для k=8 і 16 число процесорних операцій множення зменшується практично в шість раз, при цьому об'єм пам'яті для таблиць результатів передобчислень становить 2k+2(n+1) біт.
В четвертому розділі розроблюються програмні засоби реалізації запропонованих в другому та третьому розділах алгоритмів прискореного модулярного множення та модулярного експоненціювання.
ВИСНОВКИ
В дисертаційній роботі виконано теоретичне обґрунтування і одержано нове вирішення наукової задачі підвищення продуктивності реалізації протоколів захисту інформації в комп'ютерних мережах, обчислювальною основою яких є мультиплікативні операції модулярної арифметики.
Основні наукові і практичні результати полягають у наступному:
За результатами проведеного аналізу протоколів захисту інформації в комп'ютерних мережах встановлено, що вони основані на криптографічних механізмах з ”відкритим” ключем, властивості яких зумовлені теоретично нерозв'язуваними задачами теорії чисел. Відповідно, обчислювальної основою криптографічних механізмів, на яких базуються мережові протоколи захисту інформації є мультиплікативні операції модулярної арифметики над числами, розрядність яких становить 1024-4096. Основними обчислювальними операціями вказаних протоколів є модулярне множення та модулярне експоненціювання. При практичному використанні протоколів захисту інформації з ”відкритим” ключем, останні змінюються відносно рідко, що дозволяє вважати їх, а відповідно, і модуль практично сталими.
2. Розроблено новий алгоритм модулярного множення, що відрізняється від класичного табличним способом виконання модулярної редукції при сталому модулі і забезпечує суттєве зменшення обчислювальної складності за рахунок використання результатів передобчислень.
3. Запропонована модифікація алгоритму модулярного множення Монтгомері для сталого модуля, обчислювальна складність якого близька до теоретичного мінімуму і вдвоє менша в порівнянні з алгоритмом Монтгомері.
4. Розроблено алгоритм модулярного піднесення до квадрату для сталого модуля на основі рекурсії Монтгомері, обчислювальна складність якого в чотири рази менша в порівнянні з алгоритмом модулярного множення Монтгомері.
5. Запропоновано алгоритм модулярного множення на постійний множник при сталому модулі на основі рекурсії Монтгомері, обчислювальна складність якого в два рази менша в порівнянні з алгоритмом модулярного множення Монтгомері.
6. Розроблено метод прискореної обчислювальної реалізації модулярного експоненціювання з використанням редукції Монтгомері на основі запропонованих алгоритмів модулярного піднесення до квадрату і множення на сталий співмножник для малорозрядних мікропроцесорів, мікроконтролерів та смарт-карт, який забезпечує вшестеро більшу продуктивність в порівнянні з алгоритмом модулярного експоненціювання Монтгомері.
7. Розроблено програмні засоби для практичної реалізації запропонованих алгоритмів прискореного модулярного множення та модулярного експоненціювання.
СПИСОК ОПУБЛІКОВАНИХ ПРАЦЬ ЗА ТЕМОЮ ДИСЕРТАЦІЇ
1. Рамзи Анвар Салиба Сунна. Алгоритм модулярного умножения методом Монтгомери при фиксированном модуле // Вісник НТУУ “КПІ” Інформатика, управління та обчислювальна техніка. К., ТОО „ВЕК+”.- 2005.- №43.- C.42-53. (Дисертантом запропоновано розробка модифікації алгоритму модулярного множення з використанням редукції Монтгомері для сталого модуля, обчислювальна складність якого близька до теоретичного мінімуму і вдвоє менша в порівнянні з класичним алгоритмом Монтгомері ).
2. Самофалов К.Г., Рамзи Анвар Салиба Сунна, Романовский А.Е. Алгоритм ускоренного модулярного умножения чисел большой разрядности при фиксированном модуле // Проблеми інформатизації та управління. Збірник наукових праць. -К.,НАУ. - 2005.-Випуск 3(14).- C.121-128. (Дисертантом запропоновано новий алгоритм модулярного множення, що відрізняється від класичного табличним способом виконання модулярної редукції та забезпечує суттєве зниження обчислювальної складності за рахунок використання результатів передобчислень для малорозрядних мікропроцесорів, вбудованих мікроконтролерів та смарт-карт ).
3. Самофалов К.Г., Рамзи Анвар Салиба Сунна, Левчун Д.Ю. Ускоренная реализация модулярного экспоненцирования на малоразрядных микропроцессорах и встроенных микроконтроллерах // Проблеми інформатизації та управління. Збірник наукових праць: Випуск 4(15).-К.,НАУ, 2005.- C.144-153. (Дисертантом запропоновано метод прискореної обчислювальної реалізації модулярного експоненціювання на малорозрядних мікропроцесорах, мікроконтролерах та смарт-картах, який забезпечує вшестеро більшу продуктивність реалізації модулярного експоненціювання над числами великої розрядності в порівнянні з методом Монтгомері).
4. Рамзи Анвар Салиба Сунна, Чебанюк Е.В. Метод получения балансных булевых функций, соответствующих критерию строго лавинного эффекта // Вісник НТУУ “КПІ” Інформатика, управління та обчислювальна техніка. К., ТОО „ВЕК+”.- 2003. - №41.- C.133-140. (Дисертантом запропоновано підхід до використання функцій, що відповідають критерію лавинного ефекту для контролю помилок при виконання операцій модулярного множення над числами великої розрядності).
5. Стефанская В.А., Рамзи Анвар Салиба Сунна. Об одном методе ускоренного умножения на полях Галуа // Тези 6-ї міжнародної конференції ”Системний аналіз та інформаційні технології”. Київ, ННК ”ІПСА” -2005.- С.138. (Дисертантом запропоновано структури апаратних засобів для високопродуктивної реалізації операцій модулярного множення з використанням табличної пам'яті передобчислень).
АНОТАЦІЇ
Рамзі Анвар Саліба Сунна. Високопродуктивна реалізація протоколів захисту інформації на базі операцій модулярної арифметики. - Рукопис.
Дисертація на здобуття наукового ступеня кандидата технічних наук за спеціальністю 05.13.13 - Обчислювальні машини, системи та мережі. - Національний технічний університет України ”Київський політехнічний інститут”, Київ, 2006.
Дисертація присвячена проблемі підвищення продуктивності реалізації протоколів захисту інформації в комп'ютерних мережах, в основі яких лежить модулярна арифметика.
Підхід, що пропонується для вирішення цієї проблеми, має за основу те, що при практичному застосуванні систем захисту інформації з відкритим ключем таких як RSA та DSS, останній міняється достатньо рідко. Відповідно, рідко міняється і модуль. Це дозволяє прискорити реалізацію модулярних операцій за рахунок використання передобчислень, що залежать тільки від модуля.
Представлені нові алгоритми модулярного множення, що використовують передобчислення при фіксованому модулі. Один з них має за основу класичну схему модулярного множення, а другий являє собою модифікацію алгоритму Монтгомері. Показано, що продуктивність розроблених алгоритмів приблизно вдвоє вища в порівнянні з алгоритмом Монтгомері при прийнятних об'ємах потребуємої пам'яті.
Запропоновано нові алгоритми для модулярного піднесення до квадрату та множення, що мають за основу рекурсію Монтгомері. Завдяки виключенню надлишкових операцій та використанню передобчислень, обчислювальна складність запропонованих алгоритмів є суттєво меншою в порівнянні з алгоритмом множення Монтгомері. Показано, що при реалізації запропонованих алгоритмів на мікропроцесорах малої розрядності, вбудованих мікроконтролерах та старт-картах, час обчислення модулярного експоненціювання в шість раз менший в порівнянні з алгоритмом модулярного експоненціювання Монтгомері.
Ключові слова: комп'ютерна арифметика, модулярне множення, модулярне експоненціювання, передобчислення, протоколи захисту інформації в мережах.
Рамзи Анвар Салиба Сунна. Высокопроизводительная реализация протоколов защиты информации на базе операций модулярной арифметики. - Рукопись.
Диссертация на соискание ученой степени кандидата технических наук по специальности 05.13.13 - Вычислительные машины, системы и сети.- Национальный технический университет Украины ”Киевский политехнический институт”, Киев, 2006.
Диссертация посвящена проблеме повышения производительности реализации сетевых протоколов защиты информации, основанных на мультипликативных операциях модульной арифметике.
Предлагаемый подход к решению указанной проблемы основан на том, что при практическом использовании систем защиты информации с открытым ключом, последний меняется достаточно редко. Соответственно, редко меняется и модуль. Это позволяет ускорить реализацию модулярных операций путем использования предвычислений, зависящих только от модуля.
Представлены новые алгоритмы модулярного умножения, использующие предвычисления при фиксированном модуле. Один из них основан на классической схеме модулярного умножения, а второй является модификацией алгоритма Монтгомери. Показано, что производительность разработанных алгоритмов примерно вдвое выше по сравнению с алгоритмом Монтгомери при приемлемом объеме требуемой памяти.
Для повышения производительности наиболее трудоемкой операции модулярного экспоненцирования при постоянном модуле предложены новые алгоритмы вычислительной реализации составляющий экспоненцирования - модулярного возведения в квадрат и умножения на фиксированное число, основанные на рекурсии Монтгомери. Благодаря исключению избыточных операций и использованию предвычислений, зависящих от модуля вычислительная сложность предложенных алгоритмов существенно ниже по сравнению с алгоритмом умножения Монтгомери. Показано, что при реализации предложенных алгоритмов на малоразрядных микропроцессорах, встроенных микроконтроллерах или смарт-картах, время вычисления модулярного экспоненцирования в шесть раз меньше по сравнению с алгоритмом модулярного экспоненцирования Монтгомери.
Ключевые слова: компьютерная арифметика, модулярное умножение, модулярное экспоненцирование, предвычисления, протоколы защиты информации в сетях.
Ramzi Anwar Saliba Sunna. High-efficiency implementation of the data protection protocols based on modular arithmetic operations. - Manuscript.
Thesis for a Ph.D. degree by specialty 05.13.13 - Computers, systems and networks. National Technical University of Ukraine “Kiev Polytechnic Institute”, Kiev, 2006.
Thesis is dedicated to a problem of implementation productivity of network data protections protocols based on modular arithmetic increasing.
The proposed approach to solving of this problem is base on of assumption that in practice the keys of the most public-keys data protection systems such as RSA and Digital Signature Standard, are changing rarely. So the modulus is changing a rather rarely too. This fact allows to speed up of modular operations implementation by using of precomputations which are depend on modulus only.
The new precomputation modular multiplication algorithms are presented for modular multiplication for a fixed modulus. One of them is base on classical modular multiplication scheme and second is the modification of Montgomery algorithm. It has been shown that performance of proposed algorithms approximately twice high in compare to Montgomery algorithm and the amount of required storage is moderate.
The new algorithms for modular squaring and multiplication by fixed number based on reduction of Montgomery have been proposed. By including of excess operations and using of precomputations the computational complexity of the proposed algorithm is less in compare to Montgomery modular multiplication algorithm.
Key words: computer arithmetic, modular multiplication, modular exponentiation, precomputation, network data protection protocols.
Размещено на Allbest.ru
Подобные документы
Широке використання інформаційних технологій у всіх сферах життя суспільства. Інформація як об’єкт захисту. Основні види загроз безпеки інформації в комп’ютерних мережах. Несанкційований доступ до інформації і його мета. Порушники безпеки інформації.
реферат [253,2 K], добавлен 19.12.2010Основи безпеки даних в комп'ютерних системах. Розробка програми для забезпечення захисту інформації від несанкціонованого доступу: шифрування та дешифрування даних за допомогою криптографічних алгоритмів RSA та DES. Проблеми і перспективи криптографії.
дипломная работа [823,1 K], добавлен 11.01.2011Математичний опис задачі виконання символьних операцій з многочленами, розробка алгоритмів її реалізації і сама реалізація на одній з версій алгоритмічної мови Pascal, контрольна перевірка правильності. Тестування програми на екстремальних вхідних даних.
контрольная работа [24,1 K], добавлен 20.09.2010Описання видів загроз безпеки інформації. Комп’ютерні віруси як особливий клас руйнуючих програмних дій, їх життєвий цикл та стадії виконання. Засоби і методи захисту інформації у комп’ютерних системах, механізм їх дії. Класифікація антивірусних програм.
курсовая работа [48,9 K], добавлен 28.09.2011Формування валютних операцій. Організація проведення контролю та аналізу валютних операцій. Характеристика автоматизованих систем валютних операцій. Обґрунтування вибору середовища розробки. Розробка програмного модуля. Реалізація інтерфейсу користувача.
курсовая работа [1,1 M], добавлен 03.06.2012Принципи, цілі та завдання, напрямки робіт із захисту інформації. Суб'єкти системи захисту інформації у Російській Федерації. Основні організаційно-технічні заходи, об'єкти та засоби захисту інформації. Види загроз безпеки, матеріальні носії інформації.
реферат [23,6 K], добавлен 27.03.2010Дослідження криптографічних методів захисту даних від небажаного доступу. Основи безпеки даних в комп'ютерних системах. Класифікаційні складові загроз безпеки інформації. Характеристика алгоритмів симетричного та асиметричного шифрування інформації.
курсовая работа [245,8 K], добавлен 01.06.2014Задачі інформаційних систем криптографічного захисту інформації. Принципи шифрування даних на основі використання хеш-функцій. Розробка програмних компонентів інформаційних систем криптографічного захисту інформації. Види криптографічних алгоритмів.
курсовая работа [2,7 M], добавлен 23.01.2012Акт категоріювання. Акт обстеження. Наказ на контрольовану зону. Модель загроз. Технічний захист інформації. Комплексна система захисту інформації. Перелік вимог з захисту інформації. Об'єкти, що підлягають категоріюванню.
курсовая работа [17,6 K], добавлен 19.07.2007Загальна характеристика ТОВ "WED". Програмне забезпечення і система документообігу підприємства. Технічні засоби охорони об’єктів від витоку інформації. Резервне копіювання інформації. Встановлення антивірусу. Впровадження криптографічного захисту.
курсовая работа [697,1 K], добавлен 01.06.2010