/ / RSA криптиране. Описание и изпълнение на RSA алгоритъма

RSA криптиране. Описание и изпълнение на алгоритъма RSA

RSA криптирането е едно от първитепрактични криптосистеми с публичен ключ, който се използва широко за сигурно предаване на данни. Основната му разлика от подобни услуги е, че ключът за криптиране е публичен и се различава от ключа за дешифриране, който се пази в тайна. В технологията RSA тази асиметрия се основава на практическата сложност на факторинг на два големи прости числа (проблем с факторинга).

RSA криптиране

История на творението

Името на RSA се състои от началните букви на фамилните именаРивест, Шамир и Адлеман са учените, които за първи път публично описаха такива алгоритми за криптиране през 1977 г. Клифърд Кокс, английски математик, който е работил за британските разузнавателни служби, за първи път разработва еквивалентна система през 1973 г., но не е разсекретена чак през 1997 г.

Потребителят на RSA създава и след това публикувапубличен ключ, базиран на две големи прости числа, заедно със спомагателна стойност. Простите числа трябва да се пазят в тайна. Всеки може да използва публичния ключ за криптиране на съобщение, но ако той е достатъчно голям, тогава само някой с познания за прости числа може да декодира съобщението. Разкриването на RSA криптирането е известно като основния проблем: днес има открита дискусия за това колко надежден е механизмът.

алгоритми за криптиране

RSA е относително бавен алгоритъм,поради тази причина той не е толкова широко използван за директно криптиране на потребителски данни. Най-честото използване на този метод е за шифроване на споделените ключове за симетричен ключ за шифроване, който от своя страна може да извършва групови операции за криптиране и дешифриране с много по-висока скорост.

Кога криптосистемата се появи в съвременния си вид?

Идеята за асиметрична ключова криптосистемаприписва на Diffie and Hellman, които публикуват концепцията през 1976 г., въвеждайки цифрови подписи и опитвайки се да приложат теорията на числата. Тяхната формулировка използва споделен таен ключ, генериран от степенуването на някакво число по модул на просто число. Те обаче оставиха отворен проблема с прилагането на тази функция, тъй като по това време принципите на факторинга не бяха добре разбрани.

Ривест, Ади Шамир и Адлеман в МасачузетсПрез годината Технологичният институт направи няколко опита да създаде еднопосочна функция, която е трудна за декодиране. Ривест и Шамир (като компютърни учени) предлагат много потенциални функции, докато Адлеман (като математик) търси слаби места в алгоритъма. Те предприеха много подходи и в крайна сметка най-накрая разработиха това, което днес е известно като RSA през април 1977 г.

криптиране на информация

EDS и публичен ключ

Електронен цифров подпис или EDS,е неразделна част от документи от електронен тип. Образува се при определена криптографска промяна в данните. Използвайки този атрибут, е възможно да се провери целостта на даден документ, неговата поверителност, както и да се установи кой е неговият собственик. Всъщност това е алтернатива на обичайния стандартен подпис.

Тази криптосистема (RSA криптиране) предлагапубличен ключ, как се различава от симетричния. Принципът на нейното функциониране е, че се използват два различни ключа - частен (криптиран) и също публичен. Първият се използва, за да генерира EDS и впоследствие да може да дешифрира текста. Втората е за действителното криптиране и проверка на цифровия подпис.

Използването на подпис позволява по-добро разбиране на RSA криптирането, пример за което може да бъде цитиран като обикновен класифициран документ "от невнимателни очи".

Каква е същността на алгоритъма?

Алгоритъмът RSA се състои от четири етапа:генериране на ключове, тяхното разпространение, криптиране и декриптиране. Както вече беше посочено, RSA криптирането включва публичен и частен ключ. Отвореното може да бъде известно на всеки и се използва за криптиране на съобщения. Същността му се състои във факта, че съобщенията, кодирани с помощта на публичен ключ, могат да бъдат декриптирани само в рамките на определен период от време с помощта на таен ключ.

пример за криптиране на rsa

От съображения за безопасност трябва да бъдат цели числаса произволно избрани и са еднакви по размер, но се различават по дължина с няколко цифри, за да затруднят факторинга. Идентичните числа могат да бъдат ефективно намерени с помощта на тест за простота, така че криптирането на информация непременно трябва да стане по-сложно.

Публичният ключ се състои от модул и публичен експонент. Private се състои от модул и частен индикатор, които трябва да се пазят в тайна.

RSA шифроване на файлове и слабости

Съществуват обаче редица хакерски механизми.проста RSA. При криптиране с ниски стойности и ниски стойности на числа, шифърът може лесно да бъде счупен, като се избере коренът на шифър текста над цели числа.

rsa криптиране c

Тъй като RSA криптирането еС детерминиран алгоритъм (т.е. без произволен компонент), нападателят може успешно да стартира избрана атака с открит текст срещу криптосистема, като криптира вероятния открит текст под публичния ключ и проверява дали те са равни на шифъртекста. Криптосистемата се нарича семантично защитена, ако нападателят не може да направи разлика между две криптиране едно от друго, дори ако знае съответните текстове в разкритата форма. Както е описано по-горе, RSA не е семантично защитен, освен ако не е допълнен с други услуги.

Допълнителни алгоритми за криптиране и защита

За да избегнете горните проблеми, когаПрактическите изпълнения на RSA обикновено вграждат някаква форма на структурирано, рандомизирано подпълване преди криптиране. Това гарантира, че съдържанието не попада в обхвата на несигурен открит текст и че съобщението не може да бъде разкрито случайно.

rsa криптиране на файл

Сигурност и криптиране на RSA криптосистемаинформацията се основава на два математически проблема: проблемът за факторирането на големи числа и самият проблем RSA. Пълното разкриване на шифъртекста и EDS в RSA се счита за неприемливо при предположението, че и двата проблема не могат да бъдат решени заедно.

Въпреки това, поради възможността за възстановяванепрости фактори, нападателят може да изчисли тайна цифра от публичния ключ и след това да дешифрира текста, използвайки стандартна процедура. Въпреки факта, че днес не е открит съществуващ метод за разлагане на големи числа на класически компютър, не е доказано, че той не съществува.

автоматизация

Инструмент, наречен Yafu, може да бъдеизползвани за оптимизиране на този процес. Автоматизацията в YAFU е модерна функция, която съчетава факторизационни алгоритми в интелигентна и адаптивна методология, която свежда до минимум времето за намиране на фактори на произволни входни числа. Повечето имплементации на алгоритъма са многонишкови, позволявайки на Yafu да се възползва в пълна степен от много- или многоядрени процесори (включително SNFS, SIQS и ECM). На първо място, това е инструмент за управляван команден ред. Времето, необходимо за намиране на фактора на криптиране с помощта на Yafu на обикновен компютър, може да бъде намалено до 103,1746 секунди. Инструментът обработва двоични файлове с капацитет от 320 бита или повече. Това е много сложен софтуер, който изисква известно техническо умение за инсталиране и конфигуриране. По този начин RSA криптирането C може да бъде уязвимо.

rsa криптиране на пръсти

Опити за хакване в съвремието

През 2009 г. Бенджамин Муди използва битRSA-512 ключът работи за дешифриране на криптотекста в продължение на 73 дни, използвайки само добре познат софтуер (GGNFS) и среден настолен компютър (Athlon64 двуядрен при 1900 MHz). Както се вижда от този опит, за процеса на "пресяване" са били необходими малко по-малко от 5 гигабайта диск и около 2,5 гигабайта RAM.

Към 2010 г. най-големият факторизиран RSA номер е дълъг 768 бита (232 десетични цифри или RSA-768). Разкриването му продължи две години на няколкостотин компютъра едновременно.

На практика RSA ключовете са дълги -обикновено 1024 до 4096 бита. Някои експерти смятат, че 1024-битовите ключове могат да станат ненадеждни в близко бъдеще или дори вече да бъдат компрометирани от доста добре финансиран хакер. Малцина обаче ще спорят, че 4096-битовите ключове също могат да бъдат разкрити в обозримо бъдеще.

перспективи

Следователно обикновено се приема, че RSAе безопасно, ако номерата са достатъчно големи. Ако основното число е 300 бита или по-малко, шифърът и EDS могат да бъдат декомпозирани в рамките на няколко часа на персонален компютър с помощта на софтуер, който вече е свободно достъпен. Доказано е, че 512-битовите ключове могат да бъдат взломени още през 1999 г. с помощта на няколкостотин компютъра. Това е възможно в наши дни в продължение на няколко седмици, като се използва публично достъпен хардуер. По този начин е напълно възможно в бъдеще RSA криптирането да бъде лесно разкрито на пръстите и системата да стане безнадеждно остаряла.

Официално през 2003 г. беше поставена под въпрос сигурността на 1024-битовите ключове. В момента се препоръчва да бъде с дължина поне 2048 бита.