freeuni logo

ეს ვებგვერდი თან ახლავს თავისუფალი უნივერსიტეტის კრიპტოგრაფიის (aka კომპიუტერული სისტემების უსაფრთხოების) კურსს. აქ იპოვით ინფორმაციას ლექციებზე, სემინარებსა და საშინაო დავალებებზე, ასევე სხვა გამოსადეგ ბმულებს. კურსის ფორუმად ვიყენებთ Google Classroom-ს.

ლექტორის ელფოსტა: g.osipovi@freeuni.edu.ge

კურსის აღწერა

კრიპტოგრაფია კომპიუტერულ სისტემებში ინფორმაციის დაცვის შეუდარებელი საშუალებაა. მის გარეშე წარმოუდგენელი იქნებოდა თანამედრობე ინტერნეტ ბიზნების უდიდესი ნაწილი. ამ კურსში ისწავლით კრიპტოგრაფიული პრიმიტივების გამოყენებას და მათი მუშაობის ძირითად პრინციპებს.

კურსი შედგება 16 ლექციისა და 16 სემინარისგან. შეფასება ხდება 3 საშინაო დავალების (3x10%) და ორი გამოცდის - შუალედურის (30%) და ფინალურის (40%) - მიხედვით.

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

სემინარის ამოცანები დევს ამ ფოლდერში, ვიდეოამახსნები კი ამ პლეილისტში. რჩევა: სანამ ამოხსნის ვიდეოს უყურებთ, სცადეთ ამოცანის ამოხსნა დამოუკიდებლად ან სხვა სტუდენტებთან ერთად.

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

დავალებები

საშინაო დავალებებისთვის ვიყენებთ GitHub Classroom-ს. დავალებებს ვწერთ Python 3-ზე. შეგიძლიათ გამოიყენოთ მხოლოდ სტანდარტული ბიბლიოთეკის ფუნქციები.

ყველა დავალების დედლაინი არის ფინალურ გამოცდამდე ერთი კვირით ადრე.

ბმულზე გადასვლის შემდეგ GitHub შეგიქმნით რეპოზიტორიას, რომელშიც იქნება საწყისი ფაილები, დავალების ინსტრუქცია და ტესტები თქვენი კოდის შესამოწმებლად. როდესაც კოდს თქვენს კომპიუტერში აამუშავებთ და მოცემულ ტესტებზე გაატარებთ, გააკეთეთ commit. ყოველ კომიტზე ავტომატურად გაიშვება ავტოგრეიდერი, რომელიც კოდს ბით ტესტებზე შეამოწმებს. ავტოგრეიდინგის შედეგი გამოიყურება ასე:

github screenshot

დეტალების სანახავად ორი გზა გაქვთ:

  1. დააჭირეთ სიმბოლოს (სქრონშოტზე, წითელ X-ს მონიშნულ არეში) და შემდეგ Details.
  2. გადადით Actions-ში, აირჩიეთ GitHub Classroom Autograding Workflow, და შედმეგ Autograding.

საბოლოო შემოწმება, რომლის მიხედვითაც დაიწერება ქულები, მოხდება დახურულ ტესტებზე, რომელსაც ავტვირთავთ დედლაინის მერე.

ყველა ფაილი ავტომატურად მოწმდება პლაგიატზე. ეჭვის შემთხვევაში კოდს პლაგიატზე აფასებს შოთა :smiling_imp:

განრიგი

ეს არის სავარაუდო განრიგი. ვიდეოების სახელები იგივეა რაც ამ გვერდზე. თუ გინდათ, მოძებნოთ შესაბამისი თავი წიგნში, შეგიძლიათ გამოიყენოთ CS255-ის სილაბუსი.

  ლექციაზე განვიხილავთ შემდეგი კვირისთვის საყურებელი ვიდეო შემდეგი კვირის ამოცანები
0   What is cryptography?; Crash course in discrete probability Discrete Probability
1 შესავალი Stream Ciphers 1, 2, 3 Problem Set 1: 1, 2, 3
2 One-Time Pad, Stream ciphers Stream Ciphers 4 Problem Set 1: 4, 5, 6
3 Pseudorandom generators, Sematic security Block Ciphers 1, 2, 3 Problem Set 2: 1, 2
4 DES, AES, Pseudorandom permutations How to Use Block Ciphers 1, 2 Problem Set 2: 3, 4, 5, 6, 7
5 Block ciphers, modes of encryption Message Integrity 1, 2 Problem Set 3: 1, 2, 3
6 Message authentication codes (MAC) Collision Resistance 1, 2; HMAC Problem Set 3: 4, 5, 6, 7, 8
7 Hash functions, HMAC Authenticated Encryption 1, 2, 3 შარშანდელი შუალედურის ბილეთი
8 Chosen ciphertext attacks Odds and Ends 1, 2, 3 Problem Set 4: 1, 2, 3
9 Authenticated encryption Number Theory 1, 2 Problem Set 5: 1
10 დასვენება    
11 Number theory and groups Basic Key Exchange 1, 2 Problem Set 5: 2, 3
12 Key exchange, Diffie-Hellman PKE from Trapdoor Permutations, PKE From Diffie-Hellman: ElGamal Problem Set 6: 1
13 Chosen ciphertext security, ElGamal PKE from Trapdoor Permutations: RSA, attacks Problem Set 6: 2, 3
14 RSA   შარშანდელი ფინალურის ბილეთი
15 Zero-knowledge proofs    
16 Quantum cryptography (სტუმრის ლექცია)    

კონსპექტები

დამატებითი სავარჯიშოები

ეს ამოცანები შეგიძლიათ გამოიყენოთ დამატებით სავარჯიშოებად. ცნობისთვის, შუალედურისა და ფინალური ამოცანები იქნება სხვა სტილისა და სირთულის, უფრო Problem Set-ების მსგავსი. თუ ამოხსნები დაგაინტერესებთ, შეგვიძლია განვიხილოთ სემინარზე ან/და საკონსულტაციო საათების დროს.

წყაროები:

  • R - როსულეკის უფასო წიგნიდან “The Joy of Cryptography”
  • KL - კაცის და ლინდელის წიგნი (დევს კლასრუმზე)
თემა R KL
One-Time Pad 1.(1,2,4,5,7,8,10) 2.(8,9,10).
Pseudorandom Generators 5.(1,7-14) 3.(5,6)
Pseudorandom Functions 6.(2-10,17), 8.12 3.(11,14,15,16,19)
Block Ciphers 8.(4,6,8,13bc,14,15) 3.(26,29-33)
MACs 10.(1,2,5) 4.(5,6,7,13-16,19,20)
Hash Functions 11.(2,7,13)  
Number Theory, Diffie-Hellman, RSA 14.(1,3,5,8) 9.(4-6,10-13,21,28,29)

სხვა ბმულები

წიგნები და კონსპექტები

სხვა კურსები კრიპტოგრაფიაზე

ამოცანები და გამოცანები

სხვადასხვა ვიდეოები

  • ვიდეოილუსტრაციები კრიპტოგრაფიის თემებზე: https://www.youtube.com/c/ArtOfTheProblem/
  • 3b1b-ს ვიდეო “How secure is 256 bit security?”: https://youtu.be/S9JGmA5_unY
  • დან ბონეს პოპ-მეცნიერული ლექცია “Cryptography: From Mathematical Magic to Secure Communication” ელიპტურ წირებსა და მათ გამოყენებებზე კრიპტოგრაფიაში: https://youtu.be/4M8_Oo7lpiA
  • სილვიო მიკალის პოპ-მეცნიერული ლექცია “Proofs, Knowledge, and Computation”: https://youtu.be/WSuUTLqqLIU

კრიპტოგრაფიის must-read სტატიები

სია შეადგინა მონი ნაორმა.