**ალგორითმი Rivest Shamir Adleman** ანუ **RSA** — კრიპტოგრაფიის ასიმეტრიული ალგორითმი (public სიტყვა-გასაღები), მნიშვენელოვან გამოყენებას ჰპოვებს ელექტრონულ კომერციაში, განსაკუთრებით საიდუმლო მონაცემების გაცვლა-გამოცვლისათვის ინტერნეტში. ეს ალგორითმი შეიქმნა რონ რივესტის, ადი შამირის და ლენ ადლემანის მიერ 1977 წელს, საიდანაც მოდის მისი სახელწოდება.

ძირითადი ფუნქციონირება
----------------------

ეს ალგორითმი იყენებს ორი ტიპის სიტყვა-გასაღებს: public, ტექსტის დასაშიფრად და private დაშიფრული 
ტექსტის გასაშიფრად. public სიტყვა-გასაღები ხელმისაწვდომია ყველასთვის ვინც შიფრავს ინფორმაციას, private კი ხელმისაწვდომია მხოლოდ მისთვის ვინც შექმნა ორივე სიტყვა-გასაღები.
მაგალითად: ვთქვათ, ორ ადამიანს სურს საიდუმლო მონაცემების გაცვლა. ერთ-ერთი მათგანი, ჯემალი ქმნის ორივე სიტყვა-გასაღებს, შემდეგ public-ს უგზავნის სხვებს ბაკურს,ბეგლარას.... რომელთაც შეუძლიათ დაშიფრონ ტექსტი მოცემული public სიტყვა-გასაღებით,შემდეგ უგზავნიან ჯემალს რომელსაც შეუძლია გაშიფროს თავისი private სიტყვა-გასაღებით.

უფრო დაწვრილებით ფუნქციონირების შესახებ
---------------------------------------

ამ ალგორითმის ავტორები იყენებენ Z/Zn რგოლს და ფერმას მცირე თეორემას, რაც საშუალებას იძლევა მივიღოთ სპეციალური ფუნქციები(function trap) ანუ, ფუნქციები რომელთაც ერთადერთი მნიშვნელობები აქვთ breach secret-ზე. ეს მეთოდი გავრცელებულია და ფართო გამოყენებას ჰპოვებს(მაგ. ფრანგული საბანკო კარტა, კომერციული ვებ-გვერდები...). RSA აკეთებს გამოთვლას Z/Zn ჯგუფებში. მისი ალგორითმი მათემატიკურ პრინციპს ემყარება.

სიტყვა-გასაღებების შექმნა
-------------------------

1. ვიღებთ ორ განსხვავებულ პირველ მარტივ რიცხვს {\displaystyle p} და {\displaystyle q};
2. შემდეგ {\displaystyle n}-ს, {\displaystyle (n=pq)};
3. გამოვთვლით ეილერის ინდიკატორს {\displaystyle n} : {\displaystyle \varphi (n)=(p-1)(q-1)}
4. ვიღებთ {\displaystyle e}-ს, ისეთ პირველ მთელ რიცხვს, რომელსაც {\displaystyle \varphi (n)} იყენებს როგორც დაშიფვრის ხარისხს.
5. რადგანაც {\displaystyle e} მარტივია, ბეზუს თეორიიდან გამოდის რომ, იგი არის ინვერსიული mod {\displaystyle \varphi (n)} არსებობს ისეთი მთელი {\displaystyle d} რომლისთვისაც {\displaystyle ed\equiv 1{\pmod {\varphi (n)}}}. {\displaystyle d} არის გაშიფვრის მაჩვენებელი.

{\displaystyle (n,e)} წყვილი არის public სიტყვა-გასაღები, ხოლო {\displaystyle (n,d)}-private სიტყვა-გასაღები.

ტექსტის დაშიფვრა
----------------

ვთქვათ M არის მთელი რიცხვი (M<n) და წარმოადგენს ტექსტს. დაშიფრული ტექსტი იქნება:

{\displaystyle C\equiv M^{e}{\pmod {n}}}

ტექსტის გაშიფვრა
----------------

C-ს გასაშიფრად ვიყენებთ d-ს (*e* mod {\displaystyle \varphi (n)}-ის ინვერსიას) და გამოვთვლოთ{\displaystyle C^{d}{\pmod {n}}\,}
გვექნება:

{\displaystyle C^{d}{\pmod {n}}\equiv (M^{e})^{d}{\pmod {n}}\equiv M^{ed}{\pmod {n}}\,}
რადგანაც {\displaystyle ed\equiv 1{\pmod {\varphi (n)}}} მოდულით გაყოფის განმარტებით გვექნება:

{\displaystyle ed=1+k\varphi (n)=1+k(p-1)(q-1)}, სადაც {\displaystyle k\in \mathbb {N} }.
ნებისმიერი მთელი M-თვის:

{\displaystyle M^{1+k(p-1)(q-1)}\equiv M{\pmod {p}}\,}
და 

{\displaystyle M^{1+k(p-1)(q-1)}\equiv M{\pmod {q}}\,}.
* მართლაც, თუ M-ის და p-ის გამყოფები ურთიერთგანსხვავებულნი არიან, მაშინ ფერმას თეორემის მიხედვით d, {\displaystyle M^{p-1}\equiv 1{\pmod {p}}\,} მაშასადამე {\displaystyle M^{k(p-1)(q-1)}\equiv 1{\pmod {p}}\,} puis {\displaystyle M^{1+k(p-1)(q-1)}\equiv M{\pmod {p}}\,}
* si M n'est pas premier avec p, comme p est un nombre premier, cela signifie que M est multiple de p donc {\displaystyle M^{1+k(p-1)(q-1)}\equiv 0\equiv M{\pmod {p}}\,}

თუ არა და, რადგანაც p არის მარტივი რიცხვი, გამოდის რომ M არის p-ს ჯერადი და
{\displaystyle M^{1+k(p-1)(q-1)}\equiv 0\equiv M{\pmod {p}}\,}

{\displaystyle M^{1+k(p-1)(q-1)}-M\,} არის p-ს და q-ს ჯერადი, გაუსის ლემის მიხედვით მტკიცდება რომ, {\displaystyle M^{1+k(p-1)(q-1)}-M\,}არის *pq*-ს ჯერადი ანუ n-ის, და გვექნება
{\displaystyle C^{d}\equiv M^{ed}\equiv M^{1+k(p-1)(q-1)}\equiv M{\pmod {n}}\,}
დგინდება, რომ ტექსტის დასაშიფრად საჭიროა ვიცოდეთ *e* და *n*. გასაშიფრად პირიქით - *d* და *n.*

იმისათვის, რომ გამოვთვალოთ *e* და *n*, *d*-ის საშუალებით, დაგვჭირდება *e* mod (*p* - 1)(*q* - 1 ) , აგრეთვე გვჭირდება ვიცოდეთ *p* და *q*-ს მნიშვნელობები.

დაპროგრამება-დანერგვა
---------------------

როცა RSA მეთოდის გამოყენებასთან გვაქვს საქმე, თავს იჩენს შემდეგი პრობლემები:

* დიდი მარტივი რიცხვის არჩევა.
* {\displaystyle M=c^{e}\mod {n}} -ის გამოთვლა

დიდი მარტივი რიცხვის არჩევის მეთოდი არის შემდეგი: ვიღებთ ბიტების შემთხვევით მიმდევრობას (მაგ.:2048), შემდეგ ვამოწმებთ primality test(ალგორითმი რომელიც ამოწმებს მარტივია თუ არა რიცხვი)-ით. ამას მოსდევს კიდევ ერთი პრობლემა: მეთოდი, რომელიც აქ შეგვეძლო გამოგვეყენებინა, მაგალითად, ერასტოთენეს პირზმა, არის ძალიან ნელი. ამიტომ გამოიყენება სხვადასხვა primality probabilistic ტესტი(მაგ.: ფერმას primality).

ეს ტესტი არ გვაძლევს უეჭველ პასუხს რომ რიცხვი მარტივია, მაგრამ დაზუსტებით გვეუბნება, რომ დიდია ალბათობა რომ იგი მარტივი იყოს. ასევე შეიძლება გამოვიყენოთ primality deterministic-ის ტესტი (polynomial-ის შემთხვევაში, რომელიც იძლევა აგრეთვე იმის საშუალებას, რომ დავაზუსტოდ მარტივია თუ არა რიცხვი (მაგ.: AKS-ის ალგორითმი).ეს უკანასკნელი ნაკლებად სწრაფია, თუმცა დანამდვილებით ამტკიცებს რიცხვის მარტივობას.

{\displaystyle M=c^{e}\mod {n}} შეიძლება საკმაოდ გრძელი გამოდგეს, თუ მას ცუდად ავიღებთ. გასაგებია ისიც რომ ჯერ {\displaystyle c^{e}}-ს გამოთვლა და შემდეგ მისი მოდულით გაყოფა {\displaystyle n}-ზე ცუდი იდეაა, რადგანაც ბევრ დროს მოითხოვს. ძირითადად, მაინც მამოიყენება მოდულლური ექსპონენცია.

აგრეთვე შესაძლებელია private სიტყვა-გასაღების განსხვავებული სახით შენახვა, რომელიც იძლევა უფრო სწრაფად გაშიფვრის საშუალებას ჩინური ნაშთის თეორემის დახმარებით.

უსაფრთხოება
-----------

პროგრამები
----------

თავდასხმები
-----------

### Wiener-ის თავდასხმა

Wiener-ის თავდასხმა(1989) მოქმედებს მაშინ როდესაც {\displaystyle d} ნაკლებია {\displaystyle N^{\frac {1}{4}}}. ხოლო {\displaystyle d}-ს პოვნა შესაძლებელია {\displaystyle {\frac {e}{N}}} უწყვეტი ფუნქციის გაშლით.

### Hastad-ის თავდასხმა

Hastad-ის თავდასხმა, ერთ-ერთი პირველი თავდასხმა(აღმოჩენილი 1985 წ.), მოქმედებს როდესაც public e საკმაოდ პატარაა.როდესაც ხდება გაგზავნილი ტექსტური შეტყობინების დაჭერა, ჩინური ნაშთის თეორემის საშუალებით შესაძლებელია მისი თავდაპირველი სახის აღდგენა.

ქრონომეტრიული თავდასხმა
-----------------------

თავდასხმა არჩევითი შიფრაციით
----------------------------

იხილეთ აგრეთვე
--------------

* დაშიფვრა
* სიმეტრიული დაშიფვრა
* ასიმეტრიული დაშიფვრა
* აუთენტიფიკაცია
* ციფრული ხელწერა
* DSA (Digital Signature Algorithm)
* RSA-ს გამოძახება

ლიტერატურა
----------

* კრიფტოგრაფია, თეორია და პრაქტიკა, დუგლას სტინსონი, მეორე გამოცემა, Vuibert 2003
* გამოყენებითი კრიპტოგრაფია, ბრიუს შნეიერი, მეორე გამოცემა, Vuibert, იანვარი 2001, ISBN 2-7117-8676-5.
* კრიპტოგრაფია, პრინციპი, პიერ ბართელემი, რობერტ როლანდი, პასკალ ვერონი, ჰერმეს ლავუაზიე, 2005, ISBN 2-7462-1150-5

რესურსები ინტერნეტში
--------------------

* რობერტ როლანდის ლექციები (ლუნინის მათემატიკის ინსტიტუტი) RSA-ს ფაილების შესახებ.[*მკვდარი ბმული*]