1 00:00:00,000 --> 00:00:10,101 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Vamos a poner en práctica Vigenére, un poco más 3 00:00:12,700 --> 00:00:14,710 cifrado seguro que el César. 4 00:00:14,710 --> 00:00:19,670 El texto simple se cifra usando una cadena en lugar de un entero. 5 00:00:19,670 --> 00:00:22,970 Cada letra del alfabeto en texto plano es desplazado en un 6 00:00:22,970 --> 00:00:24,450 letra en la palabra clave. 7 00:00:24,450 --> 00:00:30,860 >> En este ejemplo, la palabra clave ohai, O corresponde a un desplazamiento de 14, H a una 8 00:00:30,860 --> 00:00:36,910 cambio de 7; A, turno de 0, y yo un desplazamiento de 8. 9 00:00:36,910 --> 00:00:40,710 Si ha implementado con éxito su Cifrado César, va a ser un buen 10 00:00:40,710 --> 00:00:43,510 marco desde el que se puede implementar Vigenère. 11 00:00:43,510 --> 00:00:47,140 Como puede ver, la ejecución de un Vigenére sistema de cifrado con un solo carácter como un 12 00:00:47,140 --> 00:00:51,830 la palabra clave es la misma cosa como un cifrado César. 13 00:00:51,830 --> 00:00:55,170 >> Los mismos pasos se aplican a Vigenére como lo hicieron en el César. 14 00:00:55,170 --> 00:01:01,240 La palabra clave es la segunda línea de comandos argumento, por lo que accede a ellos con argv1. 15 00:01:01,240 --> 00:01:05,400 Luego hay que verificar que la clave palabra es de hecho todos los alfabético. 16 00:01:05,400 --> 00:01:09,040 Aquí es donde es alfa puede venir muy bien. 17 00:01:09,040 --> 00:01:13,550 Si usted tiene una palabra clave válida, se obtiene la la fuerza del usuario, y luego 18 00:01:13,550 --> 00:01:15,820 estás listo para cifrar. 19 00:01:15,820 --> 00:01:20,840 >> La fórmula cifrado Vigenère es similar a la fórmula César, excepto que ahora k 20 00:01:20,840 --> 00:01:27,650 se convierte en K subíndice j, que indica la letra j-ésimo de la palabra clave. 21 00:01:27,650 --> 00:01:29,640 Demos un paso a través de este proceso. 22 00:01:29,640 --> 00:01:34,060 Digamos que usted quiere enviar un mensaje a su accidente, me gustas, pero no lo hago 23 00:01:34,060 --> 00:01:35,190 quiere que todos sepan. 24 00:01:35,190 --> 00:01:39,800 Así que utiliza un cifrado de Vigenère con el panda de palabras clave, porque, bueno, también 25 00:01:39,800 --> 00:01:41,160 como pandas. 26 00:01:41,160 --> 00:01:47,140 >> La primera carta, yo, se desplazará por p, dando x, 15 cartas después que yo, 27 00:01:47,140 --> 00:01:52,850 porque 15 p es la 16a letra del alfabeto. 28 00:01:52,850 --> 00:01:56,750 La siguiente letra del texto claro es un espacio, de manera que no se movió. 29 00:01:56,750 --> 00:02:00,420 Y el índice de la palabra clave no va a cambiar. 30 00:02:00,420 --> 00:02:05,440 >> A continuación, la siguiente letra en texto plano es l, desplazado por una, lo que no cambia 31 00:02:05,440 --> 00:02:10,930 la letra de texto sin formato en absoluto, porque una es la letra 0th del alfabeto. 32 00:02:10,930 --> 00:02:14,980 El proceso continúa, el avance de la carácter palabra clave cada vez que hay un 33 00:02:14,980 --> 00:02:16,840 letra en el texto sin formato. 34 00:02:16,840 --> 00:02:21,850 Una vez que la última letra de la palabra clave es alcanzado, la palabra clave se envuelve alrededor y 35 00:02:21,850 --> 00:02:25,890 se desplaza a la siguiente llanura texto letra por p. 36 00:02:25,890 --> 00:02:27,170 X noh lvne. 37 00:02:27,170 --> 00:02:29,180 Qué romántico. 38 00:02:29,180 --> 00:02:33,120 >> Así que dado un carácter, ¿cómo convertir que en el correspondiente 39 00:02:33,120 --> 00:02:34,590 cambio de sistema de cifrado? 40 00:02:34,590 --> 00:02:37,870 Trate de comparar el ASCII valores al cambio. 41 00:02:37,870 --> 00:02:41,530 Tal vez usted puede encontrar una relación entre las letras y sus 42 00:02:41,530 --> 00:02:44,550 Etiquetas del uso de las matemáticas ASCII. 43 00:02:44,550 --> 00:02:48,850 ¿Se puede añadir o restar un carácter de otro para obtener 44 00:02:48,850 --> 00:02:51,630 que el resultado deseado? 45 00:02:51,630 --> 00:02:55,480 >> Recuerde que los cambios de mayúsculas y minúsculas son iguales. 46 00:02:55,480 --> 00:02:59,510 Así que tal vez usted tendrá que identificar a dos fórmulas similares para representar a la 47 00:02:59,510 --> 00:03:03,570 cambiar, uno para una mayúscula carácter de palabras clave, y uno 48 00:03:03,570 --> 00:03:06,510 para una minúscula. 49 00:03:06,510 --> 00:03:10,630 >> A continuación, recuerda que los avances de la palabra clave sólo si el carácter en 50 00:03:10,630 --> 00:03:13,520 texto plano es una carta y que el caso de la llanura 51 00:03:13,520 --> 00:03:16,020 texto debe ser preservado. 52 00:03:16,020 --> 00:03:20,280 Así que si nos fijamos en la fórmula para el Vigenére cambio, hay dos índice 53 00:03:20,280 --> 00:03:22,880 variables i y j. 54 00:03:22,880 --> 00:03:26,795 Uno hace un seguimiento de la posición en la llanura de texto, y la otra la posición 55 00:03:26,795 --> 00:03:27,910 en la palabra clave. 56 00:03:27,910 --> 00:03:32,960 Pero el texto sin formato puede ser mucho más largo que su palabra clave, en cuyo caso su 57 00:03:32,960 --> 00:03:38,290 índice de palabras clave debe envolver alrededor de la espalda al principio de la palabra clave. 58 00:03:38,290 --> 00:03:39,870 >> ¿Cómo se hace esto? 59 00:03:39,870 --> 00:03:43,740 Vamos a mirar hacia atrás en el módulo operador. 60 00:03:43,740 --> 00:03:47,280 Modulo se define es el resto de dividir dos números. 61 00:03:47,280 --> 00:03:50,680 Pero, ¿qué es una práctica real utilizar de módulo? 62 00:03:50,680 --> 00:03:54,340 >> Bueno, digamos que tiene un gran grupo de la gente, y lo que necesita para dividir en 63 00:03:54,340 --> 00:03:55,100 tres grupos. 64 00:03:55,100 --> 00:03:59,500 Una forma de dividir a la gente en grupos es tener que cuenten apagado. 65 00:03:59,500 --> 00:04:03,520 Usted numerar grupo grupos número 1, 2, y 3. 66 00:04:03,520 --> 00:04:08,510 La primera persona dirá 1, el próximo 2, el próximo 3. 67 00:04:08,510 --> 00:04:12,860 La persona que va a decir después de 1, porque no es un grupo 4, y el 68 00:04:12,860 --> 00:04:15,880 conteo comienza de nuevo desde allí. 69 00:04:15,880 --> 00:04:18,209 >> Usted puede utilizar módulo de hacer lo mismo. 70 00:04:18,209 --> 00:04:22,680 Esta vez, los grupos se ser grupo 0, 1, y 2. 71 00:04:22,680 --> 00:04:26,960 La primera persona, el número 1 módulo 3, es 1. 72 00:04:26,960 --> 00:04:29,830 Persona 2 módulo 3 es 2. 73 00:04:29,830 --> 00:04:32,460 Persona 3 módulo 3 es 0. 74 00:04:32,460 --> 00:04:38,470 Persona 4 módulo 3 da 1, y así los grupos pueden envolver alrededor. 75 00:04:38,470 --> 00:04:44,700 >> Así que si usted toma un índice y de módulo dicho índice por un tamaño máximo, la 76 00:04:44,700 --> 00:04:49,820 resultado nunca será mayor que o igual al tamaño, lo que significa que se 77 00:04:49,820 --> 00:04:52,330 puede aumentar el índice como tanto como desee. 78 00:04:52,330 --> 00:04:57,400 Y mientras que el índice de módulo por algún número, usted no conseguirá un número 79 00:04:57,400 --> 00:04:58,510 mayor que. 80 00:04:58,510 --> 00:05:04,500 Así que tenemos 10 personas en lugar de 5, y todos ellos se les asigna a los grupos 81 00:05:04,500 --> 00:05:07,480 número 0, 1, o 2. 82 00:05:07,480 --> 00:05:11,680 >> Trate de aplicar esto a envolver el palabra clave, pero en lugar de la clasificación 83 00:05:11,680 --> 00:05:16,050 la gente en números de grupo que desea que el Índice de la palabra clave, para que pueda 84 00:05:16,050 --> 00:05:19,080 conseguir el carácter adecuado para la cambiar sin exceder el 85 00:05:19,080 --> 00:05:21,836 longitud de la cadena. 86 00:05:21,836 --> 00:05:24,790 Con esto, usted tiene su Cifrado Vigenère. 87 00:05:24,790 --> 00:05:27,790 Mi nombre es Zamyla, y esto es CS50. 88 00:05:27,790 --> 00:05:32,566