RSA ალგორითმი

ალგორითმი Rivest Shamir Adleman ანუ RSA — კრიპტოგრაფიის ასიმეტრიული ალგორითმი (public სიტყვა-გასაღები), მნიშვენელოვან გამოყენებას ჰპოვებს ელექტრონულ კომერციაში, განსაკუთრებით საიდუმლო მონაცემების გაცვლა-გამოცვლისათვის ინტერნეტში. ეს ალგორითმი შეიქმნა რონ რივესტის, ადი შამირის და ლენ ადლემანის მიერ 1977 წელს, საიდანაც მოდის მისი სახელწოდება. ეს ალგორითმი იყენებს ორი ტიპის სიტყვა-გასაღებს: public, ტექსტის დასაშიფრად და private დაშიფრული ტექსტის გასაშიფრად. public სიტყვა-გასაღები ხელმისაწვდომია ყველასთვის ვინც შიფრავს ინფორმაციას, private კი ხელმისაწვდომია მხოლოდ მისთვის ვინც შექმნა ორივე სიტყვა-გასაღები. მაგალითად: ვთქვათ, ორ ადამიანს სურს საიდუმლო მონაცემების გაცვლა. ერთ-ერთი მათგანი, ჯემალი ქმნის ორივე სიტყვა-გასაღებს, შემდეგ public-ს უგზავნის სხვებს ბაკურს,ბეგლარას.... რომელთაც შეუძლიათ დაშიფრონ ტექსტი მოცემული public სიტყვა-გასაღებით,შემდეგ უგზავნიან ჯემალს რომელსაც შეუძლია გაშიფროს თავისი private სიტყვა-გასაღებით. ამ ალგორითმის ავტორები იყენებენ Z/Zn რგოლს და ფერმას მცირე თეორემას, რაც საშუალებას იძლევა მივიღოთ სპეციალური ფუნქციები(function trap) ანუ, ფუნქციები რომელთაც ერთადერთი მნიშვნელობები აქვთ breach secret-ზე. ეს მეთოდი გავრცელებულია და ფართო გამოყენებას ჰპოვებს(მაგ. ფრანგული საბანკო კარტა, კომერციული ვებ-გვერდები...). RSA აკეთებს გამოთვლას Z/Zn ჯგუფებში. მისი ალგორითმი მათემატიკურ პრინციპს ემყარება. ვიღებთ ორ განსხვავებულ პირველ მარტივ რიცხვს p {\displaystyle p} და q {\displaystyle q} ; შემდეგ n {\displaystyle n} -ს, ( n = p q ) {\displaystyle (n=pq)} ; გამოვთვლით ეილერის ინდიკატორს n {\displaystyle n}  : φ ( n ) = ( p − 1 ) ( q − 1 ) {\displaystyle \varphi (n)=(p-1)(q-1)} ვიღებთ e {\displaystyle e} -ს, ისეთ პირველ მთელ რიცხვს, რომელსაც φ ( n ) {\displaystyle \varphi (n)} იყენებს როგორც დაშიფვრის ხარისხს. რადგანაც e {\displaystyle e} მარტივია, ბეზუს თეორიიდან გამოდის რომ, იგი არის ინვერსიული mod φ ( n ) {\displaystyle \varphi (n)} არსებობს ისეთი მთელი d {\displaystyle d} რომლისთვისაც e d ≡ 1 ( mod φ ( n ) ) {\displaystyle ed\equiv 1{\pmod {\varphi (n)}}} . d {\displaystyle d} არის გაშიფვრის მაჩვენებელი. ( n , e ) {\displaystyle (n,e)} წყვილი არის public სიტყვა-გასაღები, ხოლო ( n , d ) {\displaystyle (n,d)} -private სიტყვა-გასაღები. ვთქვათ M არის მთელი რიცხვი (M<n) და წარმოადგენს ტექსტს. დაშიფრული ტექსტი იქნება: C ≡ M e ( mod n ) {\displaystyle C\equiv M^{e}{\pmod {n}}} C-ს გასაშიფრად ვიყენებთ d-ს (e mod φ ( n ) {\displaystyle \varphi (n)} -ის ინვერსიას) და გამოვთვლოთ C d ( mod n ) {\displaystyle C^{d}{\pmod {n}}\,} გვექნება: C d ( mod n ) ≡ ( M e ) d ( mod n ) ≡ M e d ( mod n ) {\displaystyle C^{d}{\pmod {n}}\equiv (M^{e})^{d}{\pmod {n}}\equiv M^{ed}{\pmod {n}}\,} რადგანაც e d ≡ 1 ( mod φ ( n ) ) {\displaystyle ed\equiv 1{\pmod {\varphi (n)}}} მოდულით გაყოფის განმარტებით გვექნება: e d = 1 + k φ ( n ) = 1 + k ( p − 1 ) ( q − 1 ) {\displaystyle ed=1+k\varphi (n)=1+k(p-1)(q-1)} , სადაც k ∈ N {\displaystyle k\in \mathbb {N} } . ნებისმიერი მთელი M-თვის: M 1 + k ( p − 1 ) ( q − 1 ) ≡ M ( mod p ) {\displaystyle M^{1+k(p-1)(q-1)}\equiv M{\pmod {p}}\,} და M 1 + k ( p − 1 ) ( q − 1 ) ≡ M ( mod q ) {\displaystyle M^{1+k(p-1)(q-1)}\equiv M{\pmod {q}}\,} . მართლაც, თუ M-ის და p-ის გამყოფები ურთიერთგანსხვავებულნი არიან, მაშინ ფერმას თეორემის მიხედვით d, M p − 1 ≡ 1 ( mod p ) {\displaystyle M^{p-1}\equiv 1{\pmod {p}}\,} მაშასადამე M k ( p − 1 ) ( q − 1 ) ≡ 1 ( mod p ) {\displaystyle M^{k(p-1)(q-1)}\equiv 1{\pmod {p}}\,} puis M 1 + k ( p − 1 ) ( q − 1 ) ≡ M ( mod p ) {\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 M 1 + k ( p − 1 ) ( q − 1 ) ≡ 0 ≡ M ( mod p ) {\displaystyle M^{1+k(p-1)(q-1)}\equiv 0\equiv M{\pmod {p}}\,} თუ არა და, რადგანაც p არის მარტივი რიცხვი, გამოდის რომ M არის p-ს ჯერადი და M 1 + k ( p − 1 ) ( q − 1 ) ≡ 0 ≡ M ( mod p ) {\displaystyle M^{1+k(p-1)(q-1)}\equiv 0\equiv M{\pmod {p}}\,} M 1 + k ( p − 1 ) ( q − 1 ) − M {\displaystyle M^{1+k(p-1)(q-1)}-M\,} არის p-ს და q-ს ჯერადი, გაუსის ლემის მიხედვით მტკიცდება რომ, M 1 + k ( p − 1 ) ( q − 1 ) − M {\displaystyle M^{1+k(p-1)(q-1)}-M\,} არის pq-ს ჯერადი ანუ n-ის, და გვექნება C d ≡ M e d ≡ M 1 + k ( p − 1 ) ( q − 1 ) ≡ M ( mod 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 მეთოდის გამოყენებასთან გვაქვს საქმე, თავს იჩენს შემდეგი პრობლემები: დიდი მარტივი რიცხვის არჩევა. M = c e mod n {\displaystyle M=c^{e}\mod {n}} -ის გამოთვლა დიდი მარტივი რიცხვის არჩევის მეთოდი არის შემდეგი: ვიღებთ ბიტების შემთხვევით მიმდევრობას (მაგ.:2048), შემდეგ ვამოწმებთ primality test(ალგორითმი რომელიც ამოწმებს მარტივია თუ არა რიცხვი)-ით. ამას მოსდევს კიდევ ერთი პრობლემა: მეთოდი, რომელიც აქ შეგვეძლო გამოგვეყენებინა, მაგალითად, ერასტოთენეს პირზმა, არის ძალიან ნელი. ამიტომ გამოიყენება სხვადასხვა primality probabilistic ტესტი(მაგ.: ფერმას primality). ეს ტესტი არ გვაძლევს უეჭველ პასუხს რომ რიცხვი მარტივია, მაგრამ დაზუსტებით გვეუბნება, რომ დიდია ალბათობა რომ იგი მარტივი იყოს. ასევე შეიძლება გამოვიყენოთ primality deterministic-ის ტესტი (polynomial-ის შემთხვევაში, რომელიც იძლევა აგრეთვე იმის საშუალებას, რომ დავაზუსტოდ მარტივია თუ არა რიცხვი (მაგ.: AKS-ის ალგორითმი).ეს უკანასკნელი ნაკლებად სწრაფია, თუმცა დანამდვილებით ამტკიცებს რიცხვის მარტივობას. M = c e mod n {\displaystyle M=c^{e}\mod {n}} შეიძლება საკმაოდ გრძელი გამოდგეს, თუ მას ცუდად ავიღებთ. გასაგებია ისიც რომ ჯერ c e {\displaystyle c^{e}} -ს გამოთვლა და შემდეგ მისი მოდულით გაყოფა n {\displaystyle n} -ზე ცუდი იდეაა, რადგანაც ბევრ დროს მოითხოვს. ძირითადად, მაინც მამოიყენება მოდულლური ექსპონენცია. აგრეთვე შესაძლებელია private სიტყვა-გასაღების განსხვავებული სახით შენახვა, რომელიც იძლევა უფრო სწრაფად გაშიფვრის საშუალებას ჩინური ნაშთის თეორემის დახმარებით. Wiener-ის თავდასხმა(1989) მოქმედებს მაშინ როდესაც d {\displaystyle d} ნაკლებია N 1 4 {\displaystyle N^{\frac {1}{4}}} . ხოლო d {\displaystyle d} -ს პოვნა შესაძლებელია e N {\displaystyle {\frac {e}{N}}} უწყვეტი ფუნქციის გაშლით. 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-ს ფაილების შესახებ.[მკვდარი ბმული]