1 00:00:00,000 --> 00:00:10,101 >> [Παίζει μουσική] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Ας εφαρμόσουν Vigenere, μια ελαφρώς πιο 3 00:00:12,700 --> 00:00:14,710 εξασφαλίσει cipher από Caesar. 4 00:00:14,710 --> 00:00:19,670 Το απλό κείμενο είναι κρυπτογραφημένη με χρήση μια σειρά αντί του ακεραίου. 5 00:00:19,670 --> 00:00:22,970 Κάθε αλφαβητικό χαρακτήρα απλό κείμενο μετατοπίζεται από μια 6 00:00:22,970 --> 00:00:24,450 γράμμα τη λέξη-κλειδί. 7 00:00:24,450 --> 00:00:30,860 >> Σε αυτό το παράδειγμα, η λέξη-κλειδί Ohai, O αντιστοιχεί σε μία μετατόπιση 14? Η Σε 8 00:00:30,860 --> 00:00:36,910 μετατόπιση των 7? Α, μετατόπιση 0? Και εγώ μια μετατόπιση των 8. 9 00:00:36,910 --> 00:00:40,710 Αν έχετε εφαρμοστεί με επιτυχία σας Caesar cipher, αυτό θα είναι ένα ωραίο 10 00:00:40,710 --> 00:00:43,510 πλαίσιο από το οποίο μπορείτε μπορεί να εφαρμόσει Vigenere. 11 00:00:43,510 --> 00:00:47,140 Όπως μπορείτε να δείτε, τρέχει ένα Vigenere cipher με ένα χαρακτήρα ως 12 00:00:47,140 --> 00:00:51,830 λέξη-κλειδί είναι το ίδιο πράγμα ως κρυπτογράφησης του Καίσαρα. 13 00:00:51,830 --> 00:00:55,170 >> Τα ίδια μέτρα ισχύουν για Vigenere όπως έκαναν στο Caesar. 14 00:00:55,170 --> 00:01:01,240 Η λέξη-κλειδί είναι η δεύτερη γραμμή εντολών επιχείρημα, έτσι ώστε να έχουν πρόσβαση με argv1. 15 00:01:01,240 --> 00:01:05,400 Στη συνέχεια, θα πρέπει να βεβαιωθείτε ότι το κλειδί λέξη είναι πράγματι όλα αλφαβητική σειρά. 16 00:01:05,400 --> 00:01:09,040 Εδώ είναι όπου είναι η άλφα μπορεί να έρθει σε πρακτικό. 17 00:01:09,040 --> 00:01:13,550 Αν έχετε μια έγκυρη λέξη-κλειδί, μπορείτε να πάρετε το δύναμη από το χρήστη, και στη συνέχεια 18 00:01:13,550 --> 00:01:15,820 είστε έτοιμοι να encipher. 19 00:01:15,820 --> 00:01:20,840 >> Ο τύπος κρυπτογράφησης Vigenere είναι παρόμοια στον Καίσαρα τύπο, εκτός από τώρα k 20 00:01:20,840 --> 00:01:27,650 γίνεται k δείκτη j, υποδεικνύοντας η j-th επιστολή των λέξεων-κλειδιών. 21 00:01:27,650 --> 00:01:29,640 Ας βήμα μέσα από αυτή τη διαδικασία. 22 00:01:29,640 --> 00:01:34,060 Ας πούμε ότι ήθελε να στείλει ένα μήνυμα για να σας συντριβή, σας συμπαθώ, αλλά δεν έχετε 23 00:01:34,060 --> 00:01:35,190 θέλουν όλοι να γνωρίζουν. 24 00:01:35,190 --> 00:01:39,800 Έτσι, μπορείτε να χρησιμοποιήσετε ένα Vigenere κρυπτογράφηση με το panda-κλειδί, επειδή, καλά, μπορείτε επίσης να 25 00:01:39,800 --> 00:01:41,160 όπως pandas. 26 00:01:41,160 --> 00:01:47,140 >> Το πρώτο γράμμα, εγώ, θα μετατοπιστεί από p, δίνοντας x, 15 γράμματα αφού, 27 00:01:47,140 --> 00:01:52,850 γιατί 15 p είναι η 16η γράμμα της αλφαβήτου. 28 00:01:52,850 --> 00:01:56,750 Το επόμενο γράμμα του απλού κειμένου είναι ένα διάστημα, έτσι ώστε δεν θα αλλάξει. 29 00:01:56,750 --> 00:02:00,420 Και ο δείκτης των λέξεων-κλειδιών δεν θα αλλάξει. 30 00:02:00,420 --> 00:02:05,440 >> Στη συνέχεια, το επόμενο γράμμα σε μορφή απλού κειμένου είναι l, μετατοπίζεται από μία, η οποία δεν μετατόπιση 31 00:02:05,440 --> 00:02:10,930 το απλό έγγραφο κειμένου σε όλα, γιατί a είναι η 0th γράμμα της αλφαβήτου. 32 00:02:10,930 --> 00:02:14,980 Η διαδικασία συνεχίζεται, η προώθηση χαρακτήρα-κλειδί κάθε φορά που υπάρχει μια 33 00:02:14,980 --> 00:02:16,840 επιστολή στον απλό κείμενο. 34 00:02:16,840 --> 00:02:21,850 Μόλις το τελευταίο γράμμα της λέξης-κλειδιού είναι επιτευχθεί, η λέξη-κλειδί τυλίγει γύρω και 35 00:02:21,850 --> 00:02:25,890 μετατοπίζεται προς το επόμενο κάμπο επιστολή κειμένου από p. 36 00:02:25,890 --> 00:02:27,170 X lvne noh. 37 00:02:27,170 --> 00:02:29,180 Πόσο ρομαντικό. 38 00:02:29,180 --> 00:02:33,120 >> Έτσι, δίνεται ένα χαρακτήρα, πώς μπορείτε να μετατρέψετε ότι στην αντίστοιχη 39 00:02:33,120 --> 00:02:34,590 cipher στροφή; 40 00:02:34,590 --> 00:02:37,870 Δοκιμάστε να συγκρίνετε τον ASCII αξίες της βάρδιας. 41 00:02:37,870 --> 00:02:41,530 Ίσως μπορείτε να βρείτε μια σχέση μεταξύ των γραμμάτων και τους 42 00:02:41,530 --> 00:02:44,550 αλφαβητικό ευρετήριο χρησιμοποιώντας ASCII μαθηματικά. 43 00:02:44,550 --> 00:02:48,850 Μπορείτε να προσθέσετε ή να αφαιρέσετε ένα χαρακτήρα από την άλλη για να πάρει 44 00:02:48,850 --> 00:02:51,630 σας το επιθυμητό αποτέλεσμα; 45 00:02:51,630 --> 00:02:55,480 >> Να θυμάστε ότι οι μετατοπίσεις για κεφαλαία και πεζά γράμματα είναι τα ίδια. 46 00:02:55,480 --> 00:02:59,510 Έτσι, ίσως θα πρέπει να προσδιορίσει δύο παρόμοιες φόρμουλες να εκπροσωπεί το 47 00:02:59,510 --> 00:03:03,570 βάρδια, μία για ένα κεφαλαίο χαρακτήρα-κλειδί, και ένα 48 00:03:03,570 --> 00:03:06,510 για ένα πεζό μία. 49 00:03:06,510 --> 00:03:10,630 >> Στη συνέχεια, να θυμάστε ότι οι προκαταβολές λέξη-κλειδί μόνον αν ο χαρακτήρας στην 50 00:03:10,630 --> 00:03:13,520 απλό κείμενο είναι μια επιστολή και ότι η περίπτωση του κάμπου 51 00:03:13,520 --> 00:03:16,020 κείμενο πρέπει να διατηρηθεί. 52 00:03:16,020 --> 00:03:20,280 Έτσι, αν κοιτάξουμε την φόρμουλα για την Vigenere βάρδιες, υπάρχουν δύο δείκτες 53 00:03:20,280 --> 00:03:22,880 μεταβλητές, i και j. 54 00:03:22,880 --> 00:03:26,795 Κάποιος παρακολουθεί την κατάσταση στην πεδιάδα κειμένου, και η άλλη η θέση 55 00:03:26,795 --> 00:03:27,910 τη λέξη-κλειδί. 56 00:03:27,910 --> 00:03:32,960 Αλλά απλό κείμενο σας μπορεί να είναι πολύ μεγαλύτερη από ό, τι λέξη-κλειδί σας, οπότε σας 57 00:03:32,960 --> 00:03:38,290 ευρετήριο λέξεων-κλειδιών θα πρέπει να τυλίξετε γύρω από την πλάτη στην αρχή των λέξεων-κλειδιών. 58 00:03:38,290 --> 00:03:39,870 >> Πώς το κάνεις αυτό; 59 00:03:39,870 --> 00:03:43,740 Ας κοιτάξουμε πίσω στο modulo φορέα. 60 00:03:43,740 --> 00:03:47,280 Modulo ορίζεται είναι το υπόλοιπο διαίρεση των δύο αριθμών. 61 00:03:47,280 --> 00:03:50,680 Αλλά αυτό είναι μια πραγματική πρακτική χρήση του modulo; 62 00:03:50,680 --> 00:03:54,340 >> Λοιπόν, ας πούμε έχετε μια μεγάλη ομάδα ανθρώπους, και θα πρέπει να διαιρεθούν σε 63 00:03:54,340 --> 00:03:55,100 τρεις ομάδες. 64 00:03:55,100 --> 00:03:59,500 Ένας τρόπος για να χωρίσουμε τους ανθρώπους σε ομάδες είναι να τους μετρήσει off. 65 00:03:59,500 --> 00:04:03,520 Μπορείτε αριθμό της ομάδας των ομάδων τον αριθμό 1, 2, και 3. 66 00:04:03,520 --> 00:04:08,510 Το πρώτο άτομο που θα πει 1, η επόμενη 2, το επόμενο 3. 67 00:04:08,510 --> 00:04:12,860 Το πρόσωπο μετά από αυτό θα πει 1, επειδή δεν υπάρχει μια ομάδα 4, και το 68 00:04:12,860 --> 00:04:15,880 μετράνε ξεκινά πάνω από εκεί. 69 00:04:15,880 --> 00:04:18,209 >> Μπορείτε να χρησιμοποιήσετε το modulo για να κάνουν το ίδιο πράγμα. 70 00:04:18,209 --> 00:04:22,680 Αυτή τη φορά, οι ομάδες θα είναι ομάδα 0, 1 και 2. 71 00:04:22,680 --> 00:04:26,960 Το πρώτο πρόσωπο, τον αριθμό 1 modulo 3, είναι 1. 72 00:04:26,960 --> 00:04:29,830 Άτομο 2 modulo 3 είναι 2. 73 00:04:29,830 --> 00:04:32,460 Άτομο 3 modulo 3 είναι 0. 74 00:04:32,460 --> 00:04:38,470 Άτομο 4 modulo 3 δίνει 1, και ούτω οι ομάδες να τυλίξετε γύρω. 75 00:04:38,470 --> 00:04:44,700 >> Έτσι, εάν παίρνετε ένα δείκτη και modulo ότι ο δείκτης κατά το μέγιστο μέγεθος, η 76 00:04:44,700 --> 00:04:49,820 αποτέλεσμα δεν θα είναι ποτέ μεγαλύτερη από ή ίσο με το μέγεθος, που σημαίνει ότι 77 00:04:49,820 --> 00:04:52,330 μπορεί να αυξήσει το δείκτη, όπως όσο θα θέλατε. 78 00:04:52,330 --> 00:04:57,400 Και εφ 'όσον modulo το δείκτη του κάποια σειρά, δεν θα πάρετε έναν αριθμό 79 00:04:57,400 --> 00:04:58,510 μεγαλύτερο από αυτό. 80 00:04:58,510 --> 00:05:04,500 Έτσι έχουμε 10 άτομα αντί για 5, και θα πάρει όλα τα ανατεθεί σε ομάδες 81 00:05:04,500 --> 00:05:07,480 τον αριθμό 0, 1, ή 2. 82 00:05:07,480 --> 00:05:11,680 >> Προσπαθήστε να εφαρμόσετε αυτήν την συσκευασία πάνω από το λέξη-κλειδί, εκτός αντί της διαλογής 83 00:05:11,680 --> 00:05:16,050 οι άνθρωποι σε αριθμούς ομάδας που θέλετε το δείκτη των λέξεων-κλειδιών ώστε να μπορείτε να 84 00:05:16,050 --> 00:05:19,080 πάρει το σωστό χαρακτήρα για την στροφή χωρίς να υπερβαίνει το 85 00:05:19,080 --> 00:05:21,836 μήκος του string. 86 00:05:21,836 --> 00:05:24,790 Με αυτό, έχετε σας Vigenere κρυπτογράφησης. 87 00:05:24,790 --> 00:05:27,790 Το όνομά μου είναι Zamyla, και αυτό είναι CS50. 88 00:05:27,790 --> 00:05:32,566