Элементарные шифры на понятном языке
Все мы довольно часто слышим такие слова и словосочетания, как «шифрование данных», «секретные шифры», «криптозащита», «шифрование», но далеко не все понимают, о чем конкретно идет речь. В этом посте разберемся, что из себя представляет шифрование и рассмотрим элементарные шифры с тем расчетом, чтобы даже далекие от IT люди поняли суть этого явления.
Прежде всего, разберемся в терминологии.
Шифрование – это такое преобразование исходного сообщения, которое не позволит всяким нехорошим людям прочитать данные, если они это сообщение перехватят. Делается это преобразование по специальным математическим и логическим алгоритмам, некоторые из которых мы рассмотрим ниже.
Исходное сообщение – это, собственно, то, что мы хотим зашифровать. Классический пример — текст.
Шифрованное сообщение – это сообщение, прошедшее процесс шифрования.
Шифр — это сам алгоритм, по которому мы преобразовываем сообщение.
Ключ — это компонент, на основе которого можно произвести шифрование или дешифрование.
Алфавит – это перечень всех возможных символов в исходном и зашифрованном сообщении. Включая цифры, знаки препинания, пробелы, отдельно строчные и заглавные буквы и т.д.
Теперь, когда мы говорим на более-менее одном языке, разберем простые шифры.
Шифр Атбаша
Самый-самый простой шифр. Его суть – переворот алфавита с ног на голову.
Например, есть у нас алфавит, который полностью соответствует обычной латинице.
Для реализации шифра Атбаша просто инвертируем его. «А» станет «Z», «B» превратится в «Y» и наоборот. На выходе получим такую картину:
И теперь пишем нужное сообшение на исходном алфавите и алфавите шифра
Исходное сообщение: I love habr
Зашифрованное: r olev szyi
Шифр Цезаря
Тут добавляется еще один параметр — примитивный ключ в виде числа от 1 до 25 (для латиницы). На практике, ключ будет от 4 до 10.
Опять же, для наглядности, возьмем латиницу
И теперь сместим вправо или влево каждую букву на ключевое число значений.
Например, ключ у нас будет 4 и смещение вправо.
Исходный алфавит: a b c d e f g h i j k l m n o p q r s t u v w x y z
Зашифрованный: w x y z a b c d e f g h i j k l m n o p q r s t u v
Пробуем написать сообщение:
Шифруем его и получаем следующий несвязный текст:
Шифр Вернама (XOR-шифр)
Простейший шифр на основе бинарной логики, который обладает абсолютной криптографической стойкостью. Без знания ключа, расшифровать его невозможно (доказано Клодом Шенноном).
Исходный алфавит — все та же латиница.
Сообщение разбиваем на отдельные символы и каждый символ представляем в бинарном виде.
Классики криптографии предлагают пятизначный код бодо для каждой буквы. Мы же попробуем изменить этот шифр для кодирования в 8 бит/символ на примере ASCII-таблицы. Каждую букву представим в виде бинарного кода.
Теперь вспомним курс электроники и элемент «Исключающее ИЛИ», также известный как XOR.
XOR принимает сигналы (0 или 1 каждый), проводит над ними логическую операцию и выдает один сигнал, исходя из входных значений.
Если все сигналы равны между собой (0-0 или 1-1 или 0-0-0 и т.д.), то на выходе получаем 0.
Если сигналы не равны (0-1 или 1-0 или 1-0-0 и т.д.), то на выходе получаем 1.
Теперь для шифровки сообщения, введем сам текст для шифровки и ключ такой же длины. Переведем каждую букву в ее бинарный код и выполним формулу сообщение XOR ключ
сообщение: LONDON
ключ: SYSTEM
Переведем их в бинарный код и выполним XOR:
В данном конкретном примере на месте результирующих символов мы увидим только пустое место, ведь все символы попали в первые 32 служебных символа. Однако, если перевести полученный результат в числа, то получим следующую картину:
С виду — совершенно несвязный набор чисел, но мы-то знаем.
Шифр кодового слова
Принцип шифрования примерно такой же, как у шифра цезаря. Только в этом случае мы сдвигаем алфавит не на определенное число позиций, а на кодовое слово.
Например, возьмем для разнообразия, кириллический алфавит.
Придумаем кодовое слово. Например, «Лукоморье». Выдернем из него все повторяющиеся символы. На выходе получаем слово «Лукомрье».
Теперь вписываем данное слово в начале алфавита, а остальные символы оставляем без изменений.
И теперь запишем любое сообщение и зашифруем его.
Получим в итоге следующий нечитаемый бред:
Шифр Плейфера
Классический шифр Плейфера предполагает в основе матрицу 5х5, заполненную символами латинского алфавита (i и j пишутся в одну клетку), кодовое слово и дальнейшую манипуляцию над ними.
Пусть кодовое слово у нас будет «HELLO».
Сначала поступаем как с предыдущим шифром, т.е. уберем повторы и запишем слово в начале алфавита.
Теперь возьмем любое сообщение. Например, «I LOVE HABR AND GITHUB».
Разобьем его на биграммы, т.е. на пары символов, не учитывая пробелы.
Если бы сообщение было из нечетного количества символов, или в биграмме были бы два одинаковых символа (LL, например), то на место недостающего или повторившегося символа ставится символ X.
Шифрование выполняется по нескольким несложным правилам:
1) Если символы биграммы находятся в матрице на одной строке — смещаем их вправо на одну позицию. Если символ был крайним в ряду — он становится первым.
Например, EH становится LE.
2) Если символы биграммы находятся в одном столбце, то они смещаются на одну позицию вниз. Если символ находился в самом низу столбца, то он принимает значение самого верхнего.
Например, если бы у нас была биграмма LX, то она стала бы DL.
3) Если символы не находятся ни на одной строке, ни на одном столбце, то строим прямоугольник, где наши символы — края диагонали. И меняем углы местами.
Например, биграмма RA.
По этим правилам, шифруем все сообщение.
Если убрать пробелы, то получим следующее зашифрованное сообщение:
Поздравляю. После прочтения этой статьи вы хотя бы примерно понимаете, что такое шифрование и знаете как использовать некоторые примитивные шифры и можете приступать к изучению несколько более сложных образцов шифров, о которых мы поговорим позднее.
Источник
Науучная работа по информатике на тему «Кодирование информации»
КОДИРОВАНИЕ В ЖИЗНИ ЧЕЛОВЕКА………………………………………………..……4
ЗАНИМАТЕЛЬНОЕ КОДИРОВАНИЕ………………………………………………………. 9
Тема нашей работы была выбрана после изучения темы «Кодирование информации». Остановились мы именно на этой теме не случайно, нам хотелось узнать, кодируется информация ещё где-нибудь кроме уроков информатики.
Когда речь заходит о кодировании, то в первую очередь это ассоциируется с работой разведчиков и шпионов, чья деятельность связана с сокрытием информации. Но гораздо чаще кодирование используется для передачи, обработки и хранения информации.
Человек постоянно участвует в действиях, связанных с приёмом и передачей информации. Люди передают друг другу просьбы, приказы, отчёты о проделанной работе, публикуют книги. Передача информации происходит и при чтении книг, при просмотре телепередач.
Информация может поступать от источника к приёмнику с помощью условных знаков или сигналов. В этом случае для того чтобы произошла передача информации, приёмник должен не только получить сигнал, но и расшифровать его. Необходимо заранее договариваться, как понимать те или иные сигналы, т.е. требуется разработка кода.
В соответствии с выбранной темой нами была поставлена цель: знакомство с различными способами кодирования информации.
определить, что называют кодированием информации;
рассмотреть некоторые способы кодирования информации;
установить где и как используется кодирование информации;
собрать, обработать и обобщить материал.
Объект: процесс кодирования информации.
Предмет: кодирование информации с помощью кодировочных таблиц.
Гипотеза я предполагаю, чтобы защитить информацию её нужно закодировать.
изучение и обзор литературы по данной тематике;
КОДИРОВАНИЕ В ЖИЗНИ ЧЕЛОВЕКА
Кодирование и шифрование информации для меня стало чем-то интересным и увлекательным. Человечество в целом за всю свою многовековую историю придумало немало способов кодирования информации. Некоторые изобретения мы используем до сих пор, а их авторы известны во всем мире.
Примеров кодирования информации существует множество. Первый и самый простой пример кодирования информации – перевод на другой язык. Разрушил Бог Вавилонскую башню, и не стало у нас общего языка, видят люди разных народов один и тот же стол, а называют его по-разному и друг друга не понимают.
французский и другие
Язык мимики и жестов: язык глухонемых
Чтобы нам понять друг друга, необходимо знать правило кодирования. Такое правило называют кодом.
Код – кодекс, свод законов. Начиная с середины XIX века это слово, помимо основного значения, означало книгу, в которой словам естественного языка сопоставлены группы цифр или букв.
Люди придумали множество способов кодирования информации.
Одним из древних способов кодирования является узелковое письмо.
Можно без особого труда записать любое целое число, если конечно знать, что обозначает каждый узелок.
Также в старину на Руси довольно широко употреблялась система нумерации, по которой вели записи сборщики податей.
Из всех старинных систем нумераций только римская нумерация сохранилась до сих пор и применяется довольно часто. Римскими цифрами и сейчас обозначают столетия, главы и другое.
А вот для компьютеров люди придумали специальный двоичный код. Каждая буква, которую ты вводишь с клавиатуры, кодируются цепочкой из восьми нулей и единиц.
Музыку можно закодировать с помощью специальных знаков – нот.
Дорожные знаки – это сообщение водителю, закодированные при помощи специальных символических рисунков.
Азбука Брайля — специальная азбука , созданная французом Луи Брайлем для воспроизведения текста в изданиях для слепых.
Множество кодов очень прочло вошло в нашу жизнь. Например, код используется для оценки знаний в школе.
Свой код из шести цифр (почтовый индекс) имеет каждый населенный пункт. Его следует писать на конверте в специально отведенном для этого месте. По коду можно узнать, куда отправлять письмо.
Чаще всего применяются следующие способы кодирования информации:
графический – рисунки, значки, схемы и т.д.;
символьный – символы исходного алфавита.
Используемый для кодирования конечный набор отличных друг от друга знаков называют алфавитом.
Существует много алфавитов:
Алфавит кириллических букв (А, Б, В,…)
Алфавит латинских букв ( А, В, С,… )
Алфавит десятичных цифр (1, 2, 3, 4, 5,…)
Алфавит знаков зодиака ( ` , ^ , a , b )
Набор знаков азбуки для слепых
Набор знаков международного телеграфного кода
Штрих-код на товаре
Двоичное кодирование информации в компьютере (0 или 1)
Зачем люди кодируют информацию?
Чтобы скрыть ее от других (все случаи шифров и тайнописи)
Чтобы записать информацию короче. Самый простой пример — аббревиатуры. Что такое ООН? Организация Объединенных Наций. А что такое СНГ?
Чтобы ее удобнее было обрабатывать и передавать. Например, как передать информацию по телеграфу? Букву в электрический провод никак не запихнешь, значит, надо представить эту букву так, чтобы ее удобно было передать с помощью электрического тока.
Каждый, кто когда-нибудь смотрел кино об американском Западе XIX века, знает, что первым методом кодирования, широко применяемым для преобразования символов и текстов в электронный вид, был метод, предложенный Морзе. То, что этот метод кодирования был изобретён для передачи сообщений по телеграфным линиям, а не для обработки текстов в компьютерах, общеизвестно. Однако гораздо меньшее количество людей знает, что его изобретатель, американец Сэмюэл Финли Бриз Морзе, был также известным художником. В своё время он изучал рисование в Лондоне и там узнал об исследованиях электромагнетизма, проводимых британскими учёными. Возвращаясь по морю в США в 1832 году, он задумал создать свою собственную систему телеграфа. Именно с этой системы началось движение в сторону того мира электронных сетей, в котором мы сейчас живём, и именно за её разработку Морзе снискал славу «американского Леонардо да Винчи». Морзе продемонстрировал свою систему кодирования 24 мая 1844 года в первом в истории США сеансе телеграфной связи, который проводился между городами Балтимор (штат Мэриленд) и Вашингтон (Округ Колумбия). Он послал сообщение «What hath God wrought!» («Чудесно творение господне!»).
Морзе изобрёл метод кодирования, который он использовал для посылки своего исторического сообщения, в 1838 году. Метод кодирования Морзе напоминает двоичный код, используемый в современных компьютерах, тем, что он тоже базировался на двух возможных значениях — в случае метода кодирования Морзе это были точка или тире.
Результатом его поистине каторжного труда стал высокоэффективный метод кодирования, который с некоторыми изменениями используется до сих пор, хотя с момента его изобретения прошло уже более 160 лет.
После того, как изобретения Морзе вошли в практическое употребление, другие изобретатели внесли свой вклад в развитие телеграфа, разработав, например, такие устройства, как реле, которые позволяли одновременно с приёмом сигнала в одном месте посылать его далее.
Следующим существенным прорывом вперёд в технологии телеграфа был примитивный печатающий телеграфный аппарат, или «телетайп»; его запатентовал во Франции в 1874 году Жан Морис Эмиль Бодо. Как и телеграф Морзе, это изобретение привело к созданию новой системы кодирования символов — пятибитного метода кодирования Бодо (и используемой с ним таблицы символов). Предложенная Бодо аппаратура зарекомендовала себя весьма положительно и оставалась в широком применении в XX веке, пока её не вытеснили телефоны и персональные компьютеры.
Конец XIX века ознаменовался изобретением ещё одной системы для кодирования символов естественных языков. Он была создана в США для обработки данных, собираемых во время переписей населения, молодым американским * изобретателем, которого звали Герман Холлерит. После окончания Нью-Йоркской Колумбийской школы горного дела в 1879 году, в 1880 Холлерит устроился на работу в Бюро статистики при Министерстве внутренних дел США. Последствия этого, казалось бы, незначительного события сказывались впоследствии вплоть до 1970 годов, «золотой эры» больших вычислительных машин. Герман Холлерит был не кем иным, как изобретателем кода Холлерита, использовавшегося для записи алфавитно-цифровой информации ( т.е. символов английского алфавита, используемых в нём знаков препинания, а также арабских цифр ) на бумажных перфорированных картах. С появлением перфокарт в американских массах возникло шуточное выражение ‘do not fold, spindle, or mutilate’ («не гнуть, не тянуть, не мять»), которое оставляло у многих американцев впечатление, что компьютеры скоро будут полностью контролировать их общество.
Интересно, что хотя Холлерит применил перфокарты в работе Бюро статистики в 1880, изобретены они были гораздо раньше. Первые перфокарты были изготовлены около 1800 года французским изобретателем Жозефом Мари Жаккаром, который использовал их в новых фабричных ткацких станках. Это изобретение, запатентованное Жаккаром в 1804 году, позднее позволило полностью автоматизировать работу ткацких станков, в результате чего текстильная промышленность стала такой, какой мы её знаем сегодня. Более того, Холлерит не был первым, кто предложил использовать изобретение Жаккара для использования в вычислительной технике. Эти лавры принадлежат англичанину Чарльзу Бэббиджу, который планировал использовать перфокарты в своей «аналитической машине», огромном механическом компьютере, который так никогда и не был полностью построен ( при жизни Бэббиджа; позднее эту работу завершил его сын ). Наконец, Холлерит и не предложил бы использовать перфокарты для ввода данных, если бы не завершились неудачно его эксперименты с другим носителем — перфорированной бумажной лентой, которая имела склонность разрываться во время работы.
Чтобы решить проблему с разрывами бумажной ленты, Холлерит изготовил то, что впоследствии стало компьютерной перфокартой. Перепись населения США в 1880 году, которая выполнялась ручным трудом, продолжалась семь лет, и полученные данные за это время стали, естественно, устаревшими и бесполезными. Когда при переписи населения в 1890 году были впервые использованы табуляторы Холлерита, Бюро статистики с их помощью провело все необходимые вычисления за шесть недель и с более точными данными, чем ранее, что позволило сэкономить 5000000 $. С тех пор стоимость работ, проводимых Бюро статистики, существенно упала.
Люди всегда находили способы связи на расстоянии. Костры, мерцавшие на вершинах холмов во мраке доисторических времен, предупреждали отдаленные племена о приближении противника или о том, что стаи диких зверей перебираются на новые места. В XVII веке, когда англичане начали эксперименты с семафорами различных конструкций, стали употреблять слово «телеграф». Наблюдатель, находящийся на далеком холме, получал сигнал и передавал его наблюдателю на следующий пост.
В конце XVIII века стали применять систему Шаппе. Телеграфист на башне с помощью подзорной трубы принимал сигнал, передаваемый с другой вышки, расположенной на расстоянии пятнадцати миль от первой. Получив сигнал, телеграфист спускался вниз, переводил ручки семафора и усердно передавал сообщение на следующую вышку.
Особо остро стояла проблема передачи информации на море, между кораблями и сушей, особенно в период военных действий. Ведь правы те, кто говорит: «Кто владеет информацией, тот владеет миром».
Тогда были изобретены два способа.
Первый – флажковая азбука, когда каждый флаг обозначал какую-либо букву, и, вывешивая их между мачтами, можно было передавать сообщения. А есть еще и семафорная азбука. В ней используются два флажка, а разнообразие комбинаций достигается за счет изменения положения рук сигнальщика.
Флажный семафор является наиболее простым средством общения кораблей между собой и с береговыми постами днем в хорошую видимость на расстоянии до двух миль. Текст сообщений передается по буквам семафорной азбуки с помощью флажков. Каждому определенному положению или движению рук сигнальщика соответствует одна из букв алфавита или служебный знак. Для передачи текста флажками выбирается место, чтобы передающий и принимающий хорошо видели друг друга и ничто не мешало ясно различать положение рук.
Вокруг нас масса закодированной информации. Цифры, ноты, иконки на рабочем столе Windows , знаки дорожного движения, химические элементы – ужас какой, сколько современный человек должен держать в голове! Одни только штрих-коды на товарах чего стоят! Те, кто бывал в крупных супермаркетах, видели, как кассир, делая расчёт, просто проносит товар, повернув его штрих–кодом вниз, над кассовым аппаратом, и на экране аппарата мгновенно выскакивает цена. Поэтому думают, будто в штрих-коде заложена цена. На самом деле, конечно, в самом коде данных о цене нет. Ведь один и тот же товар в разных магазинах продаётся по разным ценам. Но когда товар поступает в данный супермаркет, принимается решение, по какой цене его продавать, и в компьютер заносятся данные о его штрих-коде и цене. Так что кассовый аппарат распознаёт, с каким товаром он имеет дело, и высвечивает заложенную стоимость.
Различные виды кодирования используются учебных в пособиях для поддержания интереса к изучаемому предмету или объяснения правил.
Разные виды кодирования информации используются в детективной литературе, например, в рассказе А. Конон Дойля «Пляшущие человечки».
Вот как Шерлок Холмс объясняет свою работу по дешифровке.
«Обычно письмо начинается с имени того, кому оно адресовано. А я с самого начала предположил, что автор обращается к хозяйке дома. Значит, он называет её по имени – Элси. Так я узнал первые четыре буквы этого шифра.
Давайте рассмотрим следующее сообщение. Тот, кто обращался к миссис Кьюбтии, что-то требовал от неё. Допустим, он хотел, чтобы она с ним встретилась. Тогда второе слово записки – приходи.
Я не сомневался, что четвёртое сообщение оставила миссис Кьюбитт. В нём всего одно слово. Это ответ на требование неизвестного. Что же ответила миссис Кьтюбитт? Она ответила: никогда!
Так путём логических рассуждений Шерлок Холмсу удалось расшифровать этот загадочный шифр.
Знаменитый американский писатель Эдгар Аллан По был увлечён криптографией. Он верил, что раскрытие шифров и других загадок требует всего лишь применение логики и интеллекта. В его рассказе «Золотой Жук» Легран расшифровывает следующее шифрованное сообщения, используя метод частотного анализа:
Метод частотного анализа состоит в следующем: Проанализировав большой объём каких угодно текстов, можно для каждой буквы алфавита подсчитать, с какой примерно частотой встречается эта буква в любом тексте. Важной характеристикой текста также являются частоты, с которыми в тексте присутствуют различные буквенные сочетания (биграммы). Подсчитав частоты всех букв и биграмм в зашифрованном сообщении, можно предположить, что наиболее частый в нём знак обозначает одну из наиболее часто встречающихся букв алфавита.
«Хорошее стекло в доме епископа на чёртовом стуле – двадцать один градус и тринадцать минут – северо – северо-восток – главный сук седьмая ветвь, восточная сторона – стреляй из левого глаза мёртвой головы – прямая от дерева через выстрел на пятьдесят футов».
Жюль Верн «Путешествие к центру Земли». В руки профессора Лиденброка попадает пергамент со следующей рукописью:
Догадавшись, что перед ним рунические письма, профессор находит, что каждый знак письма соответствует букве латинского алфавита, но затрудняется разгадать сам шифр. На помощь к нему приходит его племянник, который догадался, что слова просто написаны в обратном порядке.
В итоге им удалось прочитать следующий документ:
«Спустись в кратер Екуль Снайфедльс, который тень Скартаса ласкает перед июльским календам, отважный страннмк, и ты достигнешь центра Земли. Это я совершил. – Арне Сакнуссем».
В этом же произведении упоминается ещё один оригинальный шифр: Записать слова в вертикальном направлении, а не в горизонтальном. Тогда фраза: «Я люблю тебя всем сердцем, дорогая Гретхен!» будет выглядеть так:
В этом же произведении упоминается ещё один оригинальный шифр: Записать слова в вертикальном направлении, а не в горизонтальном. Тогда фраза: «Я люблю тебя всем сердцем, дорогая Гретхен!» будет выглядеть так:
Источник