1 00:00:00,000 --> 00:00:10,101 >> [เล่นเพลง] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Let 's ใช้ Vigenere, กว่าเล็กน้อย 3 00:00:12,700 --> 00:00:14,710 ตัวเลขที่มีความปลอดภัยกว่าซีซาร์ 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 หากคุณได้ดำเนินการประสบความสำเร็จของคุณ ซีซาร์ตัวเลขมันจะดี 10 00:00:40,710 --> 00:00:43,510 กรอบที่คุณ สามารถใช้ Vigenere 11 00:00:43,510 --> 00:00:47,140 ที่คุณสามารถดูวิ่ง Vigenere ตัวเลขกับตัวอักษรตัวเดียวเช่น 12 00:00:47,140 --> 00:00:51,830 คำหลักเป็นสิ่งเดียวกัน เป็นซีซาร์ตัวเลข 13 00:00:51,830 --> 00:00:55,170 >> ขั้นตอนเดียวกันนำไปใช้กับ Vigenere ขณะที่พวกเขาได้ในซีซาร์ 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 คุณพร้อมที่จะเปลี่ยนเป็นรหัส 19 00:01:15,820 --> 00:01:20,840 >> สูตรตัวเลข Vigenere คล้าย ซีซาร์สูตรยกเว้นในขณะนี้ K 20 00:01:20,840 --> 00:01:27,650 K ห้อยเจชี้จะกลายเป็น ตัวอักษรที่ j ของคำหลัก 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 กับ หมีแพนด้าคำหลักเพราะดีคุณยัง 25 00:01:39,800 --> 00:01:41,160 เหมือนหมีแพนด้า 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 ตัวอักษรข้อความธรรมดาที่ทุกคนเพราะ เป็นตัวอักษรตัวที่ 0 ของตัวอักษร 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 Noh X lvne 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 ตัวเลขการเปลี่ยนแปลง? 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 ลองมองกลับไปที่ ประกอบแบบโมดูโล 60 00:03:43,740 --> 00:03:47,280 Modulo ถูกกำหนดให้เป็นส่วนที่เหลือ จากการหารตัวเลขสอง 61 00:03:47,280 --> 00:03:50,680 แต่สิ่งที่เกิดขึ้นจริงในทางปฏิบัติสิ่ง การใช้แบบโมดูโล? 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 วิธีหนึ่งที่จะแบ่งคนออกเป็นกลุ่ม คือการมีพวกเขานับออก 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 >> คุณสามารถใช้แบบโมดูโลไป ทำสิ่งเดียวกัน 70 00:04:18,209 --> 00:04:22,680 เวลานี้กลุ่มจะ เป็นกลุ่ม 0, 1, 2 และ 71 00:04:22,680 --> 00:04:26,960 คนแรกที่หมายเลข 1 แบบโมดูโล 3 เป็น 1 72 00:04:26,960 --> 00:04:29,830 คน 2 แบบโมดูโล 3 คือ 2 73 00:04:29,830 --> 00:04:32,460 บุคคลที่ 3 แบบโมดูโล 3 คือ 0 74 00:04:32,460 --> 00:04:38,470 คน 4 แบบโมดูโล 3 ให้ 1 และอื่น ๆ กลุ่มสามารถห่อรอบ 75 00:04:38,470 --> 00:04:44,700 >> ดังนั้นหากคุณใช้ดัชนีและแบบโมดูโล ดัชนีโดยขนาดสูงสุดที่ 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 ความยาวของสตริง 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