როგორც ვიცით, თანამედროვე კრიპროგრაფიაში წამოვიდა მიმართლება ასიმეტრიულისა და სიმეტრიულისა, თითოეული თავის ქვე დარგებად იყოფა (დამავიწყდა ამას დამატებული პროტოკოლი ცალკე). მინდა გაჩვენოთ ჩემი დაწერილი ECB mode , რომელიც არის Block Cipher -იდან, მიმართლება სიმეტრიული კრიპტოგრაფია.
დეტალები:
თუ არის გასაღების სიგრძე 5, მაშინ გასაღებში უნდა იყოს 12 რიცხვი მძიმეებით გამოყოფილი (1 დან 12 მდე),
მაგალითად: 5,4,3,1,2,12,10,9,11,8,7,6,5
აქ, როგორც მერე მითხრეს split() ფუნქციით შემეძლო ამომეკრიფა რიცხვებით, თუმცა ეს არ ვიცოდი, თან ინსტიტუტში მიმავალ ავტობუსში ვფიქრობდი ამაზე და ჩემი ალგორითმი მივუწერე (უნივესიტეტამდე სანამ მივიდა ავტოვუსი მოვასწარი
)
მოკლედ გაუგებარი რომ არ იყოს, დავწერ ცოტას კრიპტოგრაფიაზე:
კვლევები კრიპტოგრაფიაში იწყება 1970-წლიდან, თუმცა, ამჟამად მეცნიერთა მიერ დაარსებულია ორგანიზაცია IACR (( International Association for Cryptologic Research) , სადაც ყოველდღიურად ათასობით სამეცნიერო ნაშრომები იწერება. 1970 წლამდე კრიპტოგრაფიის გამოყენების არეალი არ სცილდებოდა სამხედრო თუ პოლიტიკურ საქმიანობას, თუმცა შემდგომ, უფრო კი 1980 წლებიდან, დაიწყო კრიპტოგრაფიის გამოყენება როგორც ტელეკომუნიკაციებში, ისე მობილურ სისტემებსა და კომპიუტერულ მოწყობილობებში. დღეისათვის კი wireless ინტერნეტი, ბანკნომატები, კრედიტ კარტები, სატრანსპორტო სისტემები, თვით ელექტრო კარებებიც კი იყენებენ კრიპტოგრაფიულ ალგორითმებს. ასევე დიდი გამოყენებას ჰპოვებს კრპტოგრაფია სატელეფონო ქსელებში, როდესაც ტელეფონიდან სატელეფონო ანძამდე ხმოვანი შეტყობინებები გადაიცემა დაშიფრულად, რაც ვფიქრობ უდიდესი მიღწევაა კრიპტოგრაფიის.
კრიპტოგრაფია იყოფა ასიმეტრიულად, სიმეტრიულად და პროტოკოლად. თვითონ სიმეტრიული block ciper და stream cipher -ად. ასიმეტრიული ზუსტად როგორ და რანაერად მუშაობს არ ვიცი, არ მისწავლია ჯერ
საზოგადოდ, თუ გიორგი უგზავნის დაშიფრულ კოდს ანის, მან უნდა გამოიყენოს დასაშიფრად K გასაღები, ხოლო ანიმ გამშიფრავი D გასაღები. (გასაშიფრ კოდს ზოგ ლიტერატურაში plaintext-ით მოიხსენიებენ, ზოგან cleartext-ით, ხოლო დაშიფრულს - cipertext ით). თუ თუ კრიპტოსისტემის დამშიფრავი e გასაღები ყოველთვის არის ტოლი გამშიფრავი d კოდისა ან თუ d ადვილად გამოითვლება e-სგან, მაში იტყვიან რომ კრიპტოგრაფიული სისტემა არის სიმეტრიული. თუ გიორგის და ანას შორის არის ურთიერთობა დასამყარებელი, თავდაპირველად ისინი გაცვლიან გასაღებებს, თუმცა გასაღებების გაცვლა დიდ პრობლემას წარმოადგენს, One Time Pad ში იყო პრობლემა და მსოფლიოში უძლიერესი ალგორითმიც ამოიღეს ხმარებიდან!
თუ კრიპტოგრაფიულ სისტემაში გამშიფრავი d და მშიფრავი e არიან განსხვავებულნი და შეუძლებელია d-ს გამოთვლა მათემატიკურად e-სგან. მაშინ ესეთი სისტემა არის ასიმეტრიული. ამ დროს გიორგის შეულია თავისი e „საჯარო გასაღებად“ აქციოს (public key). და თუ გიორგის მოუნდება ვინმესგან მიღოს წერილი, ის ჯერ გამოაქვეყნებს თავის გასაღებს, dს კი საიდუმლოდ შეინახავს თავისთვის. ყველას შეულია გმაოიყენოს e, მაგრამ d მხოლოდ ბობმა იცის და მხოლოდ მას ძალუძს ასეთი ტექსტის გაშიფვრა, ამ შემთხვევაში d ს უწოდებენ პირადულ გასაღებს (private key). ასიმეტრიულ და სიმეტრიულ კრიპტო სისტემებს ასევე საჯარო-გასაღების კრიპტო სისტემებსაც უწუდებენ (public-key Cryptosystems).
რაც შეეხება პარატკოლსა.
პროტოკოლი ეს არის წესები, მონაცემთა გადაცემისათვის, უფრო კი უსაფრთხოდ გადაცემისათვის. როდესაც ინფორმაციის მოპარვა დაიწყეს მაშინ ჯგუფმა IETF შექმნა ქვე განყოფილება, რომლის დანიშნულება იყო ქსელში ინფორმაციის დაცვა და საბოლოოდ, როგორც იქნა, შეიქმნა Secure HTTP. შემდგომ სხვადასხვა პრობლემების გამო კორპორაცია Netscape მა კრიპტოგრაფია სიმეტრიული ნაკადურიკოდირება ბლოკებითკოდირება ასიმეტრიული პროტოკოლი თითქმის IETF სთან ერთად თავისი უსაფრთხოების პროტოკოლი გამოუშვა SSL (Secure Sockets Layer). SSL მთავარი მიზანია ქსელში ან 2 კომპიუტერს შორის ინფორმაციის დაცვა, ამას ახდენს სერთიფიკატებისა და key ების საშუალებით. SSL პროტოკოლი რადგანაც GNU ს ლიცენზიით ვრცელდება და რადგან გნუ-ს პროგრამისტები ვალდებულნი იყვნენ და არიან თავიანთ პროგრამასთან ერთად კოდიც გაავრცელონ(Open Sources-ეს აღიარებენ), ამიტომ ამ დარგში მომუშავეთა 90%-ი, SSL-ს პრაქტიკულად დაცულად მიიჩნევს. ცნობისათვის SSL მუშაობს 443–ე პორტზე.
რაც შეეხება ECB mode-ს
სურათზე ნაჩვენებია თუ როგორ იშიფრება 2 P ბიტი. P ასო ბგერა მოდის plaintext იდან იგივე cleartext. E ფუნქციის იშიფრება და D ფუნქციით მისი გაშიფვრა ხდება. ცნობისათვის , ზემოთ ნაჩვენებმა სქემამ, შეიძლება, უცბათ caesar cipher ანუ ცეზარის ალგორითმიც გაგვახსენოს. სადაც თითოეულ ასოს ემატებოდა რაღაც e, და ხდებოდა ასოების შეცვლა. ყველა ასო იცვლებოდა ერთი სახის key-თი. თუმცა Steram Cipher ში ვნახავთ, რომ , ცეზარის ალგორითმისგან გასნხვავებით, იქ ყველა ასო ბგერა, სხვადასხვა გასაღებით შეილება დაიშიფროს.
მაგალითად:
მაგალითად ვიყენებთ 33 სიმბოლიან ანბანს Σ={ა,ბ,გ,დ,ე,ვ,ზ,თ,ი,კ,ლ,მ,ნ,ო,პ,რ,ს,ტ,უ,ფ,ქ,ღ,ყ,შ,ჩ,ც,ძ,წ,ჭ,ხ,ჰ}. და გვინდა დავშიფროთ სიტყვა T=„მშვიდობა“ , სადაც ბლოკის სიგრძე b=4 ხოლო გასაღები k=(4,3,2,1). T=“მშვიდობა“ სიტყვა შედგება 8 სიმბლოსაგან, შესაბამისად დაიყოფა 8/2 ბლოკად. ვიყენებთ დამშიფრავ E(Ti) ფუნქციას. E ასოციაციაა Encrypt-ის.
T1=მშვი T2=დობა
თითოეული ბლოკი შედგება 4 ასო ბგერისაგან. რადგან გასაღები k=(4,3,2,1) ამიტომ პირველი სიმბოლო გადაინაცვლებს მეოთხეს ადგილას, მეორე სიმბოლო - მესამის ადგილას, მესამე სიმბოლო - მეორეს ადგილას, მეოთხე - პირველის ადგილას. შესაბამისად: E(T1)=ივშმ E(T2)=აბოდ. E(T1)+E(T2)=E(T)=ივშმაბოდ თუ ბლოკის სიგრძე იქნებოდა 8 ხოლო გასაღები 8,7,6,5,4,3,2,1 ტექსტი უბრალოდ შეტრიალდებოდა.
მაგალითი ორი (როდესაც სიგრძე მეტია)
გვაქვს ანბანი რომელიც შედგება 0-ისა და 1 ისგან Σ={0,1}. ვთქვათ ბლოკის სიგრძე b=5. გასაღები k=(5,1,3,2,4) ტექსტი T=111000111 გავუკეთოთ კოდირება დავყოთ ბლოკებად T1=11100 T2=0111 შევნიშნოთ რომ მეორე ბლოკის სიგრძე არის 4 და <b-ზე ==> რამენაირად უნდა გავხადოთ მისი სიგრძე 5 ის ტოლი, ამისათვის შეგვიძლია შემთხვევითი სიმბოლო მივუწეროთ მეორე ბლოკს მაგალითად 0 იანი. დაშიფვრის შემდგომ იქნება 01110
00111 გამუქებული ნულიანი კი სწორედ ის ნულიანია , რომელიც ჩვენ ბოლოში დავამატეთ.
ჩემ ალგორითმში 0 ებით არ ვავსებ მარტო, სხვა ხერხი მოვიფიქრე:
sudo atp-cache search Everything Interesting about Science of Computer Programming;
sudo apt-get learn Everything is Interesting;