[Powered by Google Translate] [Виженера Cipher] [Nate Хардисон - Гарвардский университет] [Это CS50. - CS50.TV] Знакомства Алиса. Алиса влюблена в Боба. К счастью для Алисы, Боб также имеет глаз для нее. К сожалению, для их подающий надежды роман, не только родители Алисы не одобряют Боб, но лучший друг Алисы, Эвелин, есть тайна влюблена в Боб и эгоистично хочет сохранить их друг от друга любой ценой. Для передачи секретных сообщений друг другу, что родители Алисы не могу понять, Алиса и Боб использовал шифр Цезаря, , который работает путем сдвига алфавита на определенное количество букв как способ создания нового алфавита. Каждая буква в исходном алфавите затем замещен соответствующим письмом В новой сдвинуты алфавита. Любимый номер Алисы 3, который Боб знает, таким образом, она использует 3, как ее ключом. Когда она сдвигается английского алфавита на 3 буквы, Становится D, B становится E, C становится F, и так далее. Когда она добирается до конца алфавита - на письма, X, Y, Z и - она просто обтекает вернуться к началу алфавита и заменители X с A, Y с B, и Z с C. Так что, когда Алиса отправляется в шифровать свои тайные сообщение Бобу, а именно: "Встреть меня в парк на 11 утра», она просто делает соответствующие замены. M становится P, E становится H, и так далее, пока ее незашифрованном виде текстового сообщения превращаются в зашифрованный текст шифра: "Phhw тел DW WKH sdun DW hohyhq ДП" , безусловно, не самый романтичный звучание, но Алиса считают, что он будет делать. Алиса дает сообщение для Эвелина доставить на дом Боба. Но вместо Эвелин берет его к себе в комнату и пытается взломать код. Одна из первых вещей, Эвелин отмечает, что буква H происходит 7 раз в сообщении, много больше раз, чем любая другая буква. Зная, что буква Е является наиболее распространенным в английском языке, происходит почти 13% времени, Эвелин предполагает, что H была заменена E для того, чтобы сделать тайное сообщение и пытается с помощью ключа от 3 до расшифровки. Через несколько минут, Эвелин выясняет планы Алисы и злобно называет родители Алисы. Если бы Алиса и Боб принято CS50, они бы знали этого Частота анализа нападение на шифр Цезаря, , что позволяет ей быть разбита довольно быстро. Они также знали, что шифр легко подвергаются атака грубой силы, Эвелин которой мог бы попробовать все возможные 25 клавиш, или сдвиги английского алфавита, для того, чтобы расшифровать сообщение. Почему 25 клавиш, а не 26? Ну, попробуйте ч. любую букву на 26 позиций, и вы поймете, почему. Во всяком случае, атака грубой силы взяли бы Эвелин немного дольше но не достаточно долго, чтобы удержать ее от срыва Алисы и Боба планы, особенно если Эвелин имеет помощи компьютера , которые могут копировать через все 25 случаев в одно мгновение. Таким образом, эта проблема также страдают другие, которые использовали шифр Цезаря, и, следовательно, люди начали экспериментировать с более сложными шифрами замены что использование нескольких значений сдвига вместо одного. Один из самых известных из них называется Виженера шифр. Как мы можем получить несколько значений сдвига? Ну, а с помощью ряда в качестве ключа, мы используем слово для ключа. Мы будем использовать каждую букву в ключевом для генерации чисел, и эффекта является то, что мы будем иметь несколько шифр Цезаря в стиле ключей для перемещения букв. Давайте посмотрим, как это работает с помощью шифрования сообщения Алисы к Бобу: Встретимся в парке на 11 утра Я, лично, думаю, бекон вкусная, так что давайте использовать его в качестве ключа. Если мы возьмем сообщение в незашифрованном виде, текстовый формат, мы видим, что это 25 букв. Бэкон имеет только 5 букв, так что мы должны повторить 5 раз чтобы он соответствовал длине простой текст. Бекон Бекон Бекон Бекон Бекон. В качестве краткого сторону, если число букв в обычный текст не делить чисто по количеству букв в ключевых, Мы просто в конечном окончательное повторение наших ключевых рано, используя только буквы мы должны сделать все, совпадают. Теперь мы идти о поиске сдвиг ценностей. Мы собираемся сделать это с помощью позиции каждой буквы из наших ключевых - бекон - В А-Я алфавиту. Так как мы компьютерных ученых, мы хотели начать отсчет с нуля, а не 1, так что мы собираемся сказать, что положение первой буквы бекон - B - находится в положении 1 в нуль-индексированный по алфавиту Z, не 2, а позиция равна нулю, а не 1. Используя этот алгоритм, мы можем найти сдвиг значений для каждой буквы. Чтобы зашифровать текст и генерировать зашифрованный текст, мы просто переложить каждой буквы в текст на заданную величину, так же, как мы делаем с шифр Цезаря, упаковка из Z обратно в случае необходимости. M получает сдвинут на 1 место, чтобы стать N. Первая E не сдвигается на всех, но мы сдвигаем второй E на 2 места для G и T на 14 мест для H. Если мы будем работать через обычный текст, мы в итоге, "Negh ZF AV HUF pcfx BT gzrwep Оз". Опять же, не очень романтично звучащего, но определенно загадочным. Если Алиса и Боб знал о Виженера шифр, бы они были в безопасности от любопытных глаз Эвелин? Что вы думаете? Хотите ли вы войти в свой банковский счет, если ваш банк решил использовать Шифр Виженера для шифрования связи с использованием пароля в качестве ключа? Если бы я был тобой, я бы не стал. И в то время Эвелин может быть занят достаточно долго для Алисы и Боба, чтобы их встретить в эксплуатацию, оно того не стоит для Алисы и Боба, чтобы рисковать. Шифр Виженера относительно легко разбить, если вы знаете длину ключа потому что тогда вы можете обращаться зашифрованный текст шифра как произведение нескольких переплетенных шифров Цезаря. Нахождение длины ключа не очень сложно, либо. Если исходный текстовые сообщения достаточно долго, что некоторые слова встречаются несколько раз, в конце концов вы увидите повторения, возникающих в зашифрованный текст шифра, как в этом примере, где вы видите MONCY появляются дважды. Кроме этого, вы можете выполнить грубой силы атаки на шифр. Это действительно занимает значительно больше, чем грубой силой атаки на шифр Цезаря, что можно сделать почти мгновенно с помощью компьютера так как вместо 25 случаев, чтобы проверить вас есть 26 ⁿ - 1 возможностям, где п длины неизвестного ключа. Это потому, что каждая буква в ключе может быть любой из 26 букв, А до Z, а умный человек постарается использовать ключ, который не может быть найдено в словаре, Это означает, что вы должны проверить все странные комбинации букв, как ZXXXFF, и не только пара сотен тысяч слов в словаре. Минус 1 приходит в математике, потому что вы не хотели бы использовать ключ только это, так как с нашей нулевой индексированных алфавит, который даст вам тот же эффект как с помощью шифра Цезаря с ключевым нуля. Во всяком случае, 26 ⁿ - 1 действительно становится большим довольно быстро, но пока вы определенно не хотели бы попробовать сломать шифр рукой таким образом, это, безусловно, выполнимы с помощью компьютера. К счастью для Алисы и Боба, а также для онлайн-банкинга, криптографы разработали более безопасные способы для шифрования секретных сообщений от любопытных глаз. Впрочем, это тема для другого времени. Меня зовут Нейт Хардисон. Это CS50.