1 00:00:00,000 --> 00:00:10,101 >> [Chơi nhạc] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Chúng ta hãy thực hiện Vigenere, một nhẹ hơn 3 00:00:12,700 --> 00:00:14,710 đảm bảo yếu hơn Caesar. 4 00:00:14,710 --> 00:00:19,670 Các văn bản đơn giản được sử dụng enciphered một chuỗi thay vì một số nguyên. 5 00:00:19,670 --> 00:00:22,970 Mỗi chữ cái trong đồng bằng văn bản được chuyển bởi một 6 00:00:22,970 --> 00:00:24,450 thư trong các từ khóa. 7 00:00:24,450 --> 00:00:30,860 >> Trong ví dụ này, các từ khóa ohai, O tương ứng với một sự thay đổi của 14; H để một 8 00:00:30,860 --> 00:00:36,910 chuyển của 7; A, sự thay đổi của 0, và tôi một sự thay đổi của 8. 9 00:00:36,910 --> 00:00:40,710 Nếu bạn đã thực hiện thành công của bạn Caesar thuật toán mã hóa, nó sẽ có một tốt đẹp 10 00:00:40,710 --> 00:00:43,510 khuôn khổ mà từ đó bạn có thể thực hiện Vigenere. 11 00:00:43,510 --> 00:00:47,140 Như bạn thấy, chạy một Vigenere thuật toán mã hóa với một nhân vật duy nhất là một 12 00:00:47,140 --> 00:00:51,830 từ khóa là điều tương tự như một mật mã Caesar. 13 00:00:51,830 --> 00:00:55,170 >> Các bước tương tự áp dụng cho Vigenere như họ đã làm trong Caesar. 14 00:00:55,170 --> 00:01:01,240 Từ khóa là dòng lệnh thứ hai lập luận, vì vậy bạn truy cập nó với argv1. 15 00:01:01,240 --> 00:01:05,400 Sau đó, bạn cần phải xác minh rằng chìa khóa từ thực sự là tất cả các chữ cái. 16 00:01:05,400 --> 00:01:09,040 Đây là nơi mà là alpha có thể có ích. 17 00:01:09,040 --> 00:01:13,550 Nếu bạn có một từ khóa hợp lệ, bạn sẽ có được sức mạnh từ người sử dụng, và sau đó 18 00:01:13,550 --> 00:01:15,820 bạn đã sẵn sàng encipher. 19 00:01:15,820 --> 00:01:20,840 >> Công thức mật mã Vigenere là tương tự cho Caesar công thức, ngoại trừ bây giờ k 20 00:01:20,840 --> 00:01:27,650 trở nên k Subscript j, cho thấy các thư j thứ của từ khóa. 21 00:01:27,650 --> 00:01:29,640 Chúng ta hãy bước qua quá trình này. 22 00:01:29,640 --> 00:01:34,060 Giả sử bạn muốn gửi tin nhắn đến bạn vụ tai nạn, tôi thích bạn, nhưng bạn không 23 00:01:34,060 --> 00:01:35,190 muốn mọi người biết. 24 00:01:35,190 --> 00:01:39,800 Vì vậy, bạn sử dụng một mật mã Vigenere với từ khóa gấu trúc, bởi vì, tốt, bạn cũng có 25 00:01:39,800 --> 00:01:41,160 giống như gấu trúc. 26 00:01:41,160 --> 00:01:47,140 >> Các chữ cái đầu tiên, tôi, sẽ được chuyển p, cho x, 15 chữ cái sau tôi, 27 00:01:47,140 --> 00:01:52,850 vì 15 p là 16 thư của bảng chữ cái. 28 00:01:52,850 --> 00:01:56,750 Bức thư tiếp theo trong văn bản đơn giản là một không gian, do đó sẽ không được thay đổi. 29 00:01:56,750 --> 00:02:00,420 Và chỉ số của các từ khóa sẽ không thay đổi. 30 00:02:00,420 --> 00:02:05,440 >> Sau đó các thư tiếp theo trong văn bản đơn giản là l, chuyển bởi một, mà không thay đổi 31 00:02:05,440 --> 00:02:10,930 các thư văn bản đơn giản chút nào, bởi vì một là thư 0 của bảng chữ cái. 32 00:02:10,930 --> 00:02:14,980 Quá trình này tiếp tục, thúc đẩy nhân vật từ khóa mỗi khi có một 33 00:02:14,980 --> 00:02:16,840 thư trong văn bản gốc. 34 00:02:16,840 --> 00:02:21,850 Sau khi lá thư cuối cùng trong các từ khóa là đạt, từ khóa kết thúc tốt đẹp xung quanh và 35 00:02:21,850 --> 00:02:25,890 ca đồng bằng tiếp theo thư văn bản bằng p. 36 00:02:25,890 --> 00:02:27,170 X lvne noh. 37 00:02:27,170 --> 00:02:29,180 Làm thế nào lãng mạn. 38 00:02:29,180 --> 00:02:33,120 >> Vì vậy, cho một nhân vật, làm thế nào để bạn chuyển đổi đó vào tương ứng 39 00:02:33,120 --> 00:02:34,590 mật mã thay đổi? 40 00:02:34,590 --> 00:02:37,870 Hãy thử so sánh ASCII giá trị cho sự thay đổi. 41 00:02:37,870 --> 00:02:41,530 Có lẽ bạn có thể tìm thấy một mối quan hệ giữa các chữ cái và họ 42 00:02:41,530 --> 00:02:44,550 chữ cái chỉ số sử dụng toán học ASCII. 43 00:02:44,550 --> 00:02:48,850 Bạn có thể thêm hoặc trừ đi một nhân vật từ khác để có được 44 00:02:48,850 --> 00:02:51,630 bạn kết quả mong muốn? 45 00:02:51,630 --> 00:02:55,480 >> Hãy nhớ rằng những thay đổi cho hoa và chữ thường đều giống nhau. 46 00:02:55,480 --> 00:02:59,510 Vì vậy, có lẽ bạn sẽ cần phải xác định hai công thức tương tự để đại diện cho 47 00:02:59,510 --> 00:03:03,570 sự thay đổi, một cho một chữ hoa nhân vật từ khóa, và một 48 00:03:03,570 --> 00:03:06,510 cho một chữ thường. 49 00:03:06,510 --> 00:03:10,630 >> Tiếp theo, hãy nhớ rằng những tiến bộ từ khóa chỉ khi các nhân vật trong 50 00:03:10,630 --> 00:03:13,520 văn bản đơn giản là một bức thư và trường hợp của đồng bằng 51 00:03:13,520 --> 00:03:16,020 văn bản phải được bảo quản. 52 00:03:16,020 --> 00:03:20,280 Vì vậy, nếu chúng ta nhìn vào công thức cho các Vigenere thay đổi, có hai chỉ số 53 00:03:20,280 --> 00:03:22,880 biến, i, k. 54 00:03:22,880 --> 00:03:26,795 Một theo dõi vị trí trong đồng bằng văn bản, và một vị trí 55 00:03:26,795 --> 00:03:27,910 trong các từ khóa. 56 00:03:27,910 --> 00:03:32,960 Nhưng đồng bằng văn bản của bạn có thể dài hơn nhiều hơn từ khóa của bạn, trong trường hợp của bạn 57 00:03:32,960 --> 00:03:38,290 chỉ số từ khóa cần để bọc xung quanh trở lại đến đầu của từ khóa. 58 00:03:38,290 --> 00:03:39,870 >> Làm thế nào để bạn làm điều này? 59 00:03:39,870 --> 00:03:43,740 Chúng ta hãy nhìn lại modulo nhà điều hành. 60 00:03:43,740 --> 00:03:47,280 Modulo được định nghĩa là phần còn lại phân chia hai con số. 61 00:03:47,280 --> 00:03:50,680 Nhưng những gì là một thực tế thực tế sử dụng modulo? 62 00:03:50,680 --> 00:03:54,340 >> Vâng, nói rằng bạn có một nhóm lớn các người, và bạn cần phải phân chia thành 63 00:03:54,340 --> 00:03:55,100 ba nhóm. 64 00:03:55,100 --> 00:03:59,500 Một cách để phân chia mọi người thành các nhóm là có họ tính ra. 65 00:03:59,500 --> 00:04:03,520 Bạn số nhóm nhóm số 1, 2, và 3. 66 00:04:03,520 --> 00:04:08,510 Người đầu tiên sẽ nói 1, 2 tiếp theo, tiếp theo 3. 67 00:04:08,510 --> 00:04:12,860 Người sau đó sẽ nói 1, bởi vì không có một nhóm 4, và 68 00:04:12,860 --> 00:04:15,880 số bắt đầu hơn từ đó. 69 00:04:15,880 --> 00:04:18,209 >> Bạn có thể sử dụng để theo modulo làm điều tương tự. 70 00:04:18,209 --> 00:04:22,680 Thời gian này, nhóm sẽ được nhóm 0, 1, và 2. 71 00:04:22,680 --> 00:04:26,960 Người đầu tiên, số 1 modulo 3, 1. 72 00:04:26,960 --> 00:04:29,830 Người 2 modulo 3 là 2. 73 00:04:29,830 --> 00:04:32,460 Người 3 modulo 3 là 0. 74 00:04:32,460 --> 00:04:38,470 Người 4 modulo 3 cho 1, và do đó các nhóm có thể bao bọc xung quanh. 75 00:04:38,470 --> 00:04:44,700 >> Vì vậy, nếu bạn có một chỉ số và modulo chỉ số của một kích thước tối đa, 76 00:04:44,700 --> 00:04:49,820 kết quả sẽ không bao giờ lớn hơn hoặc tương đương với kích thước, có nghĩa là bạn 77 00:04:49,820 --> 00:04:52,330 có thể làm tăng các chỉ số như nhiều như bạn muốn. 78 00:04:52,330 --> 00:04:57,400 Và miễn là bạn Modulo chỉ số của một số số, bạn sẽ không nhận được một số 79 00:04:57,400 --> 00:04:58,510 lớn hơn. 80 00:04:58,510 --> 00:05:04,500 Vì vậy, chúng tôi có 10 người thay vì 5, và tất cả họ sẽ được giao cho các nhóm 81 00:05:04,500 --> 00:05:07,480 số 0, 1, hoặc 2. 82 00:05:07,480 --> 00:05:11,680 >> Hãy thử áp dụng điều này để gói trong từ khóa, ngoại trừ thay vì phân loại 83 00:05:11,680 --> 00:05:16,050 người vào số nhóm bạn muốn chỉ số của các từ khóa để bạn có thể 84 00:05:16,050 --> 00:05:19,080 được những nhân vật thích hợp cho các chuyển đổi không vượt quá 85 00:05:19,080 --> 00:05:21,836 chiều dài của chuỗi. 86 00:05:21,836 --> 00:05:24,790 Cùng với đó, bạn có của bạn Vigenere mật mã. 87 00:05:24,790 --> 00:05:27,790 Tên tôi là Zamyla, và đây là CS50. 88 00:05:27,790 --> 00:05:32,566