RSA
Այս հոդվածն աղբյուրների կարիք ունի։ Դուք կարող եք բարելավել հոդվածը՝ գտնելով բերված տեղեկությունների հաստատումը վստահելի աղբյուրներում և ավելացնելով դրանց հղումները հոդվածին։ Անհիմն հղումները ենթակա են հեռացման։ |
RSA | |
---|---|
Տեսակ | cryptosystem? |
Դաս | Հանրային բանալիների գաղտնագրություն |
Օգտագործում է | integer factorization? և modular exponentiation? |
Անվանված է | Ron Rivest?, Ադի Շամիր և Leonard Adleman? |
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/33/RSA-SecurID-Tokens.jpg/220px-RSA-SecurID-Tokens.jpg)
RSA (Rivest, Shamir ու Adleman ազգանուններից ստեղծված հապավում է), բաց բանալիով գաղտնագրային ալգորիթմ է։ RSA-ը առաջին համակարգն էր, որը կարելի էր օգտագործել և՛ գաղտնագրելու, և՛ թվային ստորագրությունների համար։ Մեծ մասամբ ալգորիթմը օգտագործվում է PGP, S/MIME, TLS/SSL, IPSEC/IKE և այլ գաղտնագրային ծրագրերում։
Պատմություն
[խմբագրել | խմբագրել կոդը]1976 թվականին Ուիթֆիլդ Դիֆֆին և Մարթին Հելլմանը գաղտնագրային համակարգում առաջարկեցին նոր մոտեցում՝ բաց բանալիով գաղտնագրություն, որը փոխեց գաղտնագրության մասին պատկերացումները։ Մասաչուսեթսի տեխնոլոգիական ինստիտուտից (MIT) Ռոն Ռիվեսթը, Ադի Շամիրը և Լեոնարդ Ադլիմանը ուսումնասիրելով Դիֆֆի-Հելլմանի «Նոր ուղղություններ գաղտնագրությունում» (անգլ.՝ «New Directions in Cryptography») հոդվածը՝ սկսեցին փնտրել մաթեմատիկական ֆունկցիա, որը թույլ կտար իրագործել Դիֆֆի-Հելլմանի առաջարկած գաղտնահամակարգի մոդելը բաց բանալիով։ Ավելի քան 40 տարբերարկների վրա աշխատելուց հետո, նրանց հաջողվեց գտնել ալգորիթմ, որի անունն էլ դրեցին երեք գիտնականների ազգանունների սկզբնատառերով RSA։
Ալգորիթմի գեներացում
[խմբագրել | խմբագրել կոդը]- Վերցնում ենք երկու պարզ թիվ՝ p և q, p≠q
- բազմապատկում ենք n=p·q
- հաշվում ենք Էիլերի ֆունկցիան F(n)=(p-1)(q-1)
Գտնում ենք բաց բանալին, որը պիտի բավարարի F(n) > e > 1 և (F(n), e)= (1;1)։ Փակ բանալին գտնում ենք Էվկլիդյան բանաձևի միջոցով՝ d = e-1(mod (F(n))։ Բաց բանալին կլինի e,n զույգը։ Փակ բանալին կլինի d,n զույգը։ Ընտրում ենք բնօրինակ, որը պետք լինի փոքր n-ից (M < n)։ Գաղտնագրված տեքստը կլինի՝ C = Me modn։ Վերծանելու համար՝ M = Cd mod n։
Օրինակ
[խմբագրել | խմբագրել կոդը]Ալգորիթմ հաշվարկման համար ab mod n
[խմբագրել | խմբագրել կոդը]c ← 0 ; f ← 1
for i ← k downto 0
do c ← 2 x c
f ← (f · f ) mod n
if bi=1
then c ← c+1
f ← (f · a) mod n
return f
Անվտանգություն
[խմբագրել | խմբագրել կոդը]Չորս եղանակ կա RSA ալգորիթմի հարձակման համար
- Կոպիտ գրոհ՝ փորձելով բոլոր հնարավոր փակ բանալիները
- Մաթեմատիկական հարձակում՝ փորձելով հասկանալ, որոնք են ընտրված պարզ թվերը
- Ժամանակային հարձակումներ՝ սա կախված է վերծանման ալգորիթմի ծախսվելիք ժամանակից
- Ընտրված ծածկագրված տեքստի հարձակում, որը օգտագործում է RSA ալգորիթմի հատկությունները