RSA (алгоритам)

С Википедије, слободне енциклопедије
RSA
Опште
Пројектант(и)Роналд Ривест, Ади Шамир, Леонард Ејдлман
Датум објаве1977.
СертификацијаPKCS#1, ANSI X9.31, IEEE 1363
Детаљи
Величина сажимања1.024 - 4.096
Рунде1
Најбоља јавна криптоанализа
768-битни RSA кључ је пробијен.

RSA је алгоритам за асиметричну криптографију, првенствено намењен шифровању података али се данас користи и у системима електронског потписа. RSA данас представља индустријски стандард у области асиметричне криптографије и заштити података, тако да је широко примењен у многим сигурносним протоколима и системи електронског пословања.

Историјат[уреди | уреди извор]

RSA је алгоритам за асиметричну криптографију настао 1977. на МИТ универзитету. Творци овог алгоритма су Роналд Ривест, Леонард Ејдлман и Ади Шамир, где RSA представља акроним њихових презимена.

Клифорд Кокс, британски математичар који је радећи за једну владину агенцију за комуникације, још је 1973. године објавио у интерним документима потпуно еквивалентни систем за асиметричну криптографију, али због поверљивости тих докумената, то је тек објављено 1997.

Алгоритам је патентиран од стране МИТ1983. у САД , под шифром U.S. Patent 4,405,829. Патентна права су истекла 21. септембра 2000.

Опис алгоритма[уреди | уреди извор]

У RSA алгоритму кључну улогу имају велики прости бројеви. Сигурност RSA заснива се на сложености факторизације великих бројева. Сматра се да је одређивање оригиналне поруке на основу шифрата и кључа за шифровање еквивалентно факторизацији производа два велика проста броја.

Поступак генерисања кључа за RSA алгоритма[уреди | уреди извор]

  1. Генерисаћемо случајно два велика проста броја и при чему .
  2. Израчунаћемо следеће производе: .
  3. и ојлерову функцију .
  4. Одабере се целобројна вредност при чему .
  5. Израчуна се при чему .
  6. Јавни кључ је пар . Приватни кључ је пар .

Власник приватног (неко каже и тајног кључа) d, слободно може да објави бројеве n и e, тако да свако ко жели да му упути тајну поруку може то и учинити, а њен садржај може читати само власник приватног кључа, док остали добијају бесмислен текст.

Шифровање поруке[уреди | уреди извор]

Илустративан је бројни пример (додуше са малим бројевима али је јаснији)

Генерисање кључева[уреди | уреди извор]

Особа А формира јавни и тајни кључ:

  1. изабарала је просте бројеве ,
  2. израчунала је број
  3. израчунала је број .
  4. бира случајно број (део јавног кључа),
  5. одговарајућим (проширени Еуклидов) алгоритмом рачуна . тј. тајни кључ

Дакле јавни кључ је пар .

Шифровање поруке[уреди | уреди извор]

Да би особа Б која поседује тај јавни кључ, шифровала поруку , особи А мора да:

  1. рачуна .
  2. Тај број c = 3650502 (шифрат оригиналне поруке m) особа Б, шаље особи А, која приступа дешифровању. односно користећи број d - тајни кључ рачуна:

Дешифровање поруке[уреди | уреди извор]

Користећи број d - тајни кључ особа А рачуна:

а тај број је и оригинална порука m).

Недостаци алгоритма[уреди | уреди извор]

Прости бројеви који се користе у овом алгоритму углавном садрже неколико стотина цифара и због тога се овде јављају више проблема практичне природе. Да би се помножили толико велики бројеви, морају се користити посебни алгоритми за множење. Сем тога лако се да приметити да је за такве операције потребно више времена, па су тако ови алгоритми шифровања много спорији у односу на симетричне алгоритме. DES алгоритам шифровања је око 100 до 1000 пута бржи у односу на RSA алгоритам. Сем овога алгоритми за факторизацију бројева постају сваким даном све бољи, као и неумољив развој компјутера учинили су да данас 512 битни RSA алгоритам не буде довољан за безбедно шифровање порука, за 1024 битне алгоритме претпоставља се да ће бити безбедни барем још 15-так година.

Референце[уреди | уреди извор]