Коды шифровки. Как создать секретный код или шифр

Воспользоваться старой и малоизвестной системой записи. Даже римские цифры не всегда бывает легко прочитать, особенно с первого взгляда и без справочника. Мало кто сможет «с лёта» определить, что в длинной строчке MMMCDLXXXIX скрывается число 3489.

С римской системой счисления знакомы многие, поэтому ее нельзя назвать надежной для шифрования. Гораздо лучше прибегнуть, например, к греческой системе, где цифры также обозначаются буквами, но букв используется намного больше. В надписи ОМГ, которую легко принять за распространенное в интернете выражение эмоций, может быть спрятано записанное по-гречески число 443. Буква «О микрон» соответствует числу 400, буквой «Мю» обозначается 40, ну а «Гамма» заменяет тройку.

Недостаток подобных буквенных систем в том, что они зачастую требуют экзотических букв и знаков. Это не составляет особого труда, если ваш шифр записан ручкой на бумаге, но превращается в проблему, если вы хотите отправить его, скажем, по электронной почте. Компьютерные шрифты включают в себя греческие символы, но их бывает сложно набирать. А если вы выбрали что-то еще более необычное, вроде старой кириллической записи или египетских числовых , то компьютер просто не сможет их передать.

Для таких случаев можно рекомендовать простой способ, которым в России в старые времена пользовались все те же бродячие торговцы - коробейники и офени. Для успешной торговли им было жизненно необходимо согласовывать между собой цены, но так, чтобы об этом не узнал никто посторонний. Поэтому коробейники и разработали множество хитроумных способов шифровки.

С цифрами они обходились следующим образом. Вначале нужно взять слово в котором есть десять различных букв, например «правосудие». Затем буквы нумеруются от единицы до нуля. «П» становится знаком для единицы, «в» - для четверки, и так далее. После этого любое число можно записывать буквами вместо цифр по обычной десятичной системе. Например, год 2011 записывается по системе офеней как «реепп». Попробуйте сами , спрятано в строчке «а,пвпоирс».

«Правосудие» - не единственное слово русского языка, подходящее для этого метода. «Трудолюбие» годится ничуть не хуже: в нем также десять неповторяющихся букв. Вы вполне можете и самостоятельно поискать другие возможные основы.

Шифрование данных – это один из способов защиты информации от несанкционированного доступа. Есть множество различных методов шифрования, нужно всего лишь выбрать удобный для вас.

Вам понадобится

  • - компьютер.

Инструкция

Используйте простые приемы шифровки ов, если нужно передать небольшое количество информации. Запишите исходное сообщение, далее можно сдвинуть алфавит на одну букву. Для этого перепишите текст, но вместо каждой буквы вписывайте следующую после нее по алфавиту. Например, зашифрованный по такой методике текст «Информация» будет выглядеть так: «Йохпснбчйа». Можно сделать по-другому - вместо буквы алфавита вводите букву, противоположную ей, к примеру, вместо «А» вводите «Я». Для этого напишите буквы алфавита, разделите пополам и каждую половину.

Используйте шифры сложной замены для шифрования текстов. Здесь используется многоалфавитная подстановка, которая меняет и подставляет алфавиты, используемые для шифрования. Зашифровать сообщение можно с помощью шифра Гронсфельда. Для этого запишите текст сообщения, придумайте цифровой ключ, то есть сочетание цифр для шифровки. Запишите этот ключ под буквами сообщения. Если ключ короче текста, повторяйте его. Далее шифруйте сообщение таким образом: к примеру, первая буква сообщения – Л. Ключ, который вы использовали, выглядит как 35399. Соответственно, под первой буквой у вас находится цифра «3». Значит, под этой цифрой введите букву, третью по порядку после «Л». Получите букву «О». Аналогично шифруйте остальные буквы. Тот, кто знает цифровой код и имеет зашифрованный текст, а также способ шифровки, легко разгадает данный текст.

Используйте программу шифрования данных, если у вас нет времени на придумывание шифров и кодирование текстов. Скачайте ее по ссылке http://zimagec.narod.ru/main/Section/Bez/FixTC0.html . Запустите программу, введите пароль (ключ), который будет основой шифрования данных. Расшифровка будет возможна только после введения данного пароля. Введите в окно программы текст, подлежащий шифровке, нажмите кнопку «Кодировать», а для расшифровки - «Раскодировать».

Видео по теме

Источники:

  • зашифрованный алфавит

Необходимость зашифровать строковую переменную в веб-программировании возникает достаточно часто. Это может быть необходимо не только для работы с паролями или другими приватными данными. Например, часто зашифровать html-код, который необходимо сохранить в файл, базу данных или куки, бывает проще, чем организовывать его очистку ото всех запрещенных знаков перед записью, а затем восстанавливать их после чтения. Ниже приведен один из вариантов шифрования строковой переменной с использованием языка PHP.

Инструкция

Используйте встроенную функцию языка PHP base64_encode для кодирования строковых переменных. Она имеет один параметр, который необходимо передавать - значение шифруемой переменной. Например, PHP-код, который выводить на закодированный методом MIME base64 текст «зашифрованная строка», может выглядеть так:

Закодированный текст будет таким: "5+D46PTw7uLg7e3g/yDx8vDu6uA=".

Применяйте встроенную функцию base64_decode для декодирования строковых переменных, зашифрованных методом MIME base64. Эта функция тоже имеет только один обязательный параметр. Например, чтобы и вывести на страницу код, полученный в предыдущем шаге, использовать такую строку на языке PHP:

Воспользуйтесь каким-либо веб-сервисом, если закодировать слово или тест надо одноразово или в случае отсутствия возможности выполнять PHP-скрипты. Например, перейдя на страницу http://tools4noobs.com/online_php_functions/base64_encode введите в единственное поле нужное слово или текст и щелкните по кнопке с надписью Base 64 encode. Скрипт на сервере получит введенные данные, применит к ним функцию base64_encode и поместит закодированное значение в дополнительное поле ввода. В нем зашифрованную строку можно скопировать и использовать на ваше усмотрение. При необходимости расшифровки можно использовать аналогичный веб-сервис, который применит к введенному вами значению функцию base64_decode. Соответствующая страница на этом сайте размещена по адресу http://tools4noobs.com/online_php_functions/base64_decode .

Дешифровка - одно из самых увлекательнейших занятий. Ведь всегда так любопытно узнать, что именно скрывается за той или иной кодировкой. Тем более, что видов различных шифров очень и очень много. Поэтому и способов их распознавания и перевода тоже предостаточно. Самая сложная задача - правильно определить, каким именно способом нужно расшифровывать ту или иную загадку.

Инструкция

Если вы собираетесь расшифровывать определенную кодировку, помните, что в большинстве случаев информацию шифруют посредством подмены . Попробуйте определить наиболее часто встречающиеся буквы в языке и соотнесите их с имеющимися у вас в шифре. Исследователи облегчили вам задачу и часть из них уже свели в определенную таблицу. Если вы ей воспользуетесь, то это значительно ускорит процесс дешифровки. Подобным образом в свое время были разгаданы шифры Полибия и Цезаря.

С той самой поры, как человечество доросло до письменной речи, для защиты сообщений используются коды и шифры. Греки и египтяне использовали шифры для защиты личной переписки. Собственно говоря, именно из этой славной традиции и произрастает современная традиция взлома кодов и шифров. Криптоанализ изучает коды и методы их взлома, и это занятие в современных реалиях может принести немало пользы. Если вы хотите этому научиться, то можно начать с изучения самых распространенных шифров и всего, что с ними связано. В общем, читайте эту статью!

Шаги

Расшифровка шифров замещения

    Начните с поиска слов из одной буквы. Большинство шифров на основе относительно простой замены легче всего взломать банальным перебором с подстановкой. Да, придется повозиться, но дальше будет только сложнее.

    • Слова из одной буквы в русском языке - это местоимения и предлоги (я, в, у, о, а). Чтобы найти их, придется внимательно изучить текст. Угадывайте, проверяйте, закрепляйте или пробуйте новые варианты - иного метода разгадки шифра нет.
    • Вы должны научиться читать шифр. Взламывать его - это не столь важно. Учитесь выхватывать шаблоны и правила, лежащие в основе шифра, и тогда его взлом не будет представлять для вас принципиальной сложности.
  1. Ищите наиболее часто употребляемые символы и буквы. К примеру, в английском языке такими являются “e”, “t” и “a”. Работая с шифром, используйте свое знание языка и структуры предложений, на основе чего делайте гипотезы и предположения. Да, на все 100% вы редко будете уверены, но разгадывание шифров - это игра, где от вас требуется делать догадки и исправлять собственные ошибки!

    • Двойные символы и короткие слова ищите в первую очередь, старайтесь начать расшифровку именно с них. Легче, как никак, работать с двумя буквами, чем с 7-10.
  2. Обращайте внимание на апострофы и символы вокруг. Если в тексте есть апострофы, то вам повезло! Так, в случае английского языка, использование апострофа означает, что после зашифрованы такие знаки, как s, t, d, m, ll или re. Соответственно, если после апострофа идут два одинаковых символа, то это наверняка L!

    Попробуйте определить, какой у вас тип шифра. Если вы, разгадывая шифр, в определенный момент поймете, к какому из вышеописанных типов он относится, то вы его практически разгадали. Конечно, такое будет случаться не так уж и часто, но чем больше шифров вы разгадаете, тем проще вам будет потом.

    • Цифровая замена и клавиатурные шифры в наши дни распространены более всего. Работая над шифром, первым делом проверяйте, не такого ли он типа.

    Распознавание обычных шифров

    1. Шифры замещения. Строго говоря, шифры замещения кодируют сообщение, замещая одни буквы другими, согласно заранее определенному алгоритму. Алгоритм - и есть ключ к разгадке шифра, если разгадать его, то и раскодировать сообщение проблемы не составит.

      • Даже если в коде есть цифры, кириллица или латиница, иероглифы или необычные символы - пока используются одни и те же типы символов, то вы, вероятно, работаете именно с шифром замещения. Соответственно, вам надо изучить используемый алфавит и вывести из него правила замещения.
    2. Квадратный шифр. Простейшее шифрование, используемое еще древними греками, работающее на основе использования таблицы цифр, каждая из которых соответствует какой-то букве и из которых впоследствии и составляются слова. Это действительно простой код, своего рода - основа основ. Если вам надо разгадать шифр в виде длинной строки цифр - вероятно, что пригодятся именно методы работы с квадратным шифром.

      Шифр Цезаря. Цезарь умел не только делать три дела одновременно, он еще и понимал в шифровании. Цезарь создал хороший, простой, понятный и, в то же время, устойчивый ко взлому шифр, который в его честь и назвали. Шифр Цезаря - это первый шаг на пути к изучению сложных кодов и шифров. Суть шифра Цезаря в том, что все символы алфавита сдвигаются в одну сторону на определенное количество символов. Например, сдвиг на 3 символа влево будет менять А на Д, Б на Е и т.д.

      Следите за клавиатурными шаблонами. На основе традиционной раскладки клавиатуры типа QWERTY в наше время создаются различные шифры, работающие по принципу смещения и замещения. Буквы смещаются влево, вправо, вверх и вниз на определенное количество символов, что и позволяет создать шифр. В случае таких шифров надо знать, в какую сторону были смещены символы.

      • Так, меняя колонки на одну позицию вверх, “wikihow” превращается в “28i8y92”.
      • Полиалфавитные шифры. Простые замещающие шифры опираются на создание шифрующим своего рода алфавита для шифрования. Но уже в Средние века это стало слишком ненадежно, слишком просто для взлома. Тогда криптография сделала шаг вперед и стала сложнее, начав использовать для шифрования символы сразу нескольких алфавитов. Что и говорить, надежность шифрования сразу повысилась.

    Что значит быть дешифровальщиком

      Будьте терпеливы. Взломать шифр - это терпение, терпение и еще раз терпение. Ну и упорство, конечно же. Это медленная, кропотливая работа, сопряженная с большим количеством разочарования из-за частых ошибок и необходимости постоянно подбирать символы, слова, методы и т.д. Хороший дешифровальщик просто обязан быть терпеливым.

      Пишите собственные шифры. Конечно, криптограммы - это одно, а полиалфавитные шифры без кодовых слов - совсем другое, но все же собственные шифры писать надо. Именно через это занятие вы сможете понять образ мышления тех, кто шифрует сообщения тем или иным образом. Это как “щит и меч” - чем острее меч, тем надежнее щит. Многие дешифровальщики и сами не последние люди в плане составления шифров. Изучайте все более и более сложные методы, учитесь расшифровывать их - и вы достигнете вершин мастерства.

      Решайте известные и до сих пор неразгаданные шифры. ФБР, к примеру, регулярно дает сообществу любителей криптографии пищу для ума, публикуя различные шифры и предлагая всем желающим их разгадать. Решайте их, отправляйте свои ответы… возможно, скоро вы смените работу.

      Наслаждайтесь сложностью работы и атмосферой загадки! Дешифрование - это как если погрузиться в роман Дэна Брауна с головой, но по-настоящему! Сложность, загадочность, предвкушение открытия - все это таинственный и волнующий мир шифров.

    • В английском языке буква “е” используется чаще всех прочих.
    • Если шифр напечатан, то есть шанс, что печатали его специальным шрифтом - типа Windings. И это может быть… двойным шифром!
    • Не опускайте руки, если шифр не поддается уже долгое время. Это нормально.
    • Чем длиннее шифр, тем проще его взломать.
    • Одна буква в шифре вовсе не обязательно соответствует одной букве дешифрованного сообщения. Верно и обратное.
    • Буква в шифре практически никогда не обозначает саму себя (“а” - это не “а”).

В шифрах замены (или шифрах подстановки), в отличие от , элементы текста не меняют свою последовательность, а изменяются сами, т.е. происходит замена исходных букв на другие буквы или символы (один или несколько) по неким правилам.

На этой страничке описаны шифры, в которых замена происходит на буквы или цифры. Когда же замена происходит на какие-то другие не буквенно-цифровые символы, на комбинации символов или рисунки, это называют прямым .

Моноалфавитные шифры

В шифрах с моноалфавитной заменой каждая буква заменяется на одну и только одну другую букву/символ или группу букв/символов. Если в алфавите 33 буквы, значит есть 33 правила замены: на что менять А, на что менять Б и т.д.

Такие шифры довольно легко расшифровать даже без знания ключа. Делается это при помощи частотного анализа зашифрованного текста - надо посчитать, сколько раз каждая буква встречается в тексте, и затем поделить на общее число букв. Получившуюся частоту надо сравнить с эталонной. Самая частая буква для русского языка - это буква О, за ней идёт Е и т.д. Правда, работает частотный анализ на больших литературных текстах. Если текст маленький или очень специфический по используемым словам, то частотность букв будет отличаться от эталонной, и времени на разгадывание придётся потратить больше. Ниже приведена таблица частотности букв (то есть относительной частоты встречаемых в тексте букв) русского языка, рассчитанная на базе НКРЯ .

Использование метода частотного анализа для расшифровки шифрованных сообщений красиво описано во многих литературных произведениях, например, у Артура Конана Дойля в романе « » или у Эдгара По в « ».

Составить кодовую таблицу для шифра моноалфавитной замены легко, но запомнить её довольно сложно и при утере восстановить практически невозможно, поэтому обычно придумывают какие-то правила составления таких кодовых страниц. Ниже приведены самые известные из таких правил.

Случайный код

Как я уже писал выше, в общем случае для шифра замены надо придумать, какую букву на какую надо заменять. Самое простое - взять и случайным образом перемешать буквы алфавита, а потом их выписать под строчкой алфавита. Получится кодовая таблица. Например, вот такая:

Число вариантов таких таблиц для 33 букв русского языка = 33! ≈ 8.683317618811886*10 36 . С точки зрения шифрования коротких сообщений - это самый идеальный вариант: чтобы расшифровать, надо знать кодовую таблицу. Перебрать такое число вариантов невозможно, а если шифровать короткий текст, то и частотный анализ не применишь.

Но для использования в квестах такую кодовую таблицу надо как-то по-красивее преподнести. Разгадывающий должен для начала эту таблицу либо просто найти, либо разгадать некую словесно-буквенную загадку. Например, отгадать или решить .

Ключевое слово

Один из вариантов составления кодовой таблицы - использование ключевого слова. Записываем алфавит, под ним вначале записываем ключевое слово, состоящее из неповторяющихся букв, а затем выписываем оставшиеся буквы. Например, для слова «манускрипт» получим вот такую таблицу:

Как видим, начало таблицы перемешалось, а вот конец остался неперемешенным. Это потому, что самая «старшая» буква в слове «манускрипт» - буква «У», вот после неё и остался неперемешенный «хвост». Буквы в хвосте останутся незакодированными. Можно оставить и так (так как большая часть букв всё же закодирована), а можно взять слово, которое содержит в себе буквы А и Я, тогда перемешаются все буквы, и «хвоста» не будет.

Само же ключевое слово можно предварительно тоже загадать, например при помощи или . Например, вот так:

Разгадав арифметический ребус-рамку и сопоставив буквы и цифры зашифрованного слова, затем нужно будет получившееся слово вписать в кодовую таблицу вместо цифр, а оставшиеся буквы вписать по-порядку. Получится вот такая кодовая таблица:

Атбаш

Изначально шифр использовался для еврейского алфавита, отсюда и название. Слово атбаш (אתבש) составлено из букв «алеф», «тав», «бет» и «шин», то есть первой, последней, второй и предпоследней букв еврейского алфавита. Этим задаётся правило замены: алфавит выписывается по порядку, под ним он же выписывается задом наперёд. Тем самым первая буква кодируется в последнюю, вторая - в предпоследнюю и т.д.

Фраза «ВОЗЬМИ ЕГО В ЭКСЕПШН» превращается при помощи этого шифра в «ЭРЧГТЦ ЪЬР Э ВФНЪПЖС».

ROT1

Этот шифр известен многим детям. Ключ прост: каждая буква заменяется на следующую за ней в алфавите. Так, A заменяется на Б, Б на В и т.д., а Я заменяется на А. «ROT1» значит «ROTate 1 letter forward through the alphabet» (англ. «поверните/сдвиньте алфавит на одну букву вперед»). Сообщение «Хрюклокотам хрюклокотамит по ночам» станет «Цсялмплпубн цсялмплпубнйу рп опшбн». ROT1 весело использовать, потому что его легко понять даже ребёнку, и легко применять для шифрования. Но его так же легко и расшифровать.

Шифр Цезаря

Шифр Цезаря - один из древнейших шифров. При шифровании каждая буква заменяется другой, отстоящей от неё в алфавите не на одну, а на большее число позиций. Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Он использовал сдвиг на три буквы (ROT3). Шифрование для русского алфавита многие предлагают делать с использованием такого сдвига:

Я всё же считаю, что в русском языке 33 буквы, поэтому предлагаю вот такую кодовую таблицу:

Интересно, что в этом варианте в алфавите замены читается фраза «где ёж?»:)

Но сдвиг ведь можно делать на произвольное число букв - от 1 до 33. Поэтому для удобства можно сделать диск, состоящий из двух колец, вращающихся относительно друг друга на одной оси, и написать на кольцах в секторах буквы алфавита. Тогда можно будет иметь под рукой ключ для кода Цезаря с любым смещением. А можно совместить на таком диске шифр Цезаря с атбашем, и получится что-то вроде этого:

Собственно, поэтому такие шифры и называются ROT - от английского слова «rotate» - «вращать».

ROT5

В этом варианте кодируются только цифры, остальной текст остаётся без изменений. Производится 5 замен, поэтому и ROT5: 0↔5, 1↔6, 2↔7, 3↔8, 4↔9.

ROT13

ROT13 - это вариация шифра Цезаря для латинского алфавита со сдвигом на 13 символов. Его часто применяют в интернете в англоязычных форумах как средство для сокрытия спойлеров, основных мыслей, решений загадок и оскорбительных материалов от случайного взгляда.

Латинский алфавит из 26 букв делится на две части. Вторая половина записывается под первой. При кодировании буквы из верхней половины заменяются на буквы из нижней половины и наоборот.

ROT18

Всё просто. ROT18 - это комбинация ROT5 и ROT13:)

ROT47

Существует более полный вариант этого шифра - ROT47. Вместо использования алфавитной последовательности A–Z, ROT47 использует больший набор символов, почти все отображаемые символы из первой половины ASCII -таблицы. При помощи этого шифра можно легко кодировать url, e-mail, и будет непонятно, что это именно url и e-mail:)

Например, ссылка на этот текст зашифруется вот так: 9EEAi^^?@K5C]CF^82>6D^BF6DE^4CJAE^4:A96C^K2>6?2nURC@Ecf. Только опытный разгадывальщик по повторяющимся в начале текста двойкам символов сможет додуматься, что 9EEAi^^ может означать HTTP:⁄⁄ .

Квадрат Полибия

Полибий - греческий историк, полководец и государственный деятель, живший в III веке до н.э. Он предложил оригинальный код простой замены, который стал известен как «квадрат Полибия» (англ. Polybius square) или шахматная доска Полибия. Данный вид кодирования изначально применялся для греческого алфавита, но затем был распространен на другие языки. Буквы алфавита вписываются в квадрат или подходящий прямоугольник. Если букв для квадрата больше, то их можно объединять в одной ячейке.

Такую таблицу можно использовать как в шифре Цезаря. Для шифрования на квадрате находим букву текста и вставляем в шифровку нижнюю от неё в том же столбце. Если буква в нижней строке, то берём верхнюю из того же столбца. Для кириллицы можно использовать таблицу РОТ11 (аналог шифра Цезаря со сдвигом на 11 символов):

Буквы первой строки кодируются в буквы второй, второй - в третью, а третьей - в первую.

Но лучше, конечно, использовать «фишку» квадрата Полибия - координаты букв:

    Под каждой буквой кодируемого текста записываем в столбик две координаты (верхнюю и боковую). Получится две строки. Затем выписываем эти две строки в одну строку, разбиваем её на пары цифр и используя эти пары как координаты, вновь кодируем по квадрату Полибия.

    Можно усложнить. Исходные координаты выписываем в строку без разбиений на пары, сдвигаем на нечётное количество шагов, разбиваем полученное на пары и вновь кодируем.

Квадрат Полибия можно создавать и с использованием кодового слова. Сначала в таблицу вписывается кодовое слово, затем остальные буквы. Кодовое слово при этом не должно содержать повторяющихся букв.

Вариант шифра Полибия используют в тюрьмах, выстукивая координаты букв - сначала номер строки, потом номер буквы в строке.

Стихотворный шифр

Этот метод шифрования похож на шифр Полибия, только в качестве ключа используется не алфавит, а стихотворение, которое вписывается построчно в квадрат заданного размера (например, 10×10). Если строка не входит, то её «хвост» обрезается. Далее полученный квадрат используется для кодирования текста побуквенно двумя координатами, как в квадрате Полибия. Например, берём хороший стих «Бородино» Лермонтова и заполняем таблицу. Замечаем, что букв Ё, Й, Х, Ш, Щ, Ъ, Э в таблице нет, а значит и зашифровать их мы не сможем. Буквы, конечно, редкие и могут не понадобиться. Но если они всё же будут нужны, придётся выбирать другой стих, в котором есть все буквы.

РУС/LAT

Наверное, самый часто встречающийся шифр:) Если пытаться писать по-русски, забыв переключиться на русскую раскладку, то получится что-то типа этого: Tckb gsnfnmcz gbcfnm gj-heccrb? pf,sd gthtrk.xbnmcz yf heccre. hfcrkflre? nj gjkexbncz xnj-nj nbgf "njuj^ Ну чем не шифр? Самый что ни на есть шифр замены. В качестве кодовой таблицы выступает клавиатура.

Таблица перекодировки выглядит вот так:

Литорея

Литорея (от лат. littera - буква) - тайнописание, род шифрованного письма, употреблявшегося в древнерусской рукописной литературе. Известна литорея двух родов: простая и мудрая. Простая, иначе называемая тарабарской грамотой, заключается в следующем. Если «е» и «ё» считать за одну букву, то в русском алфавите остаётся тридцать две буквы, которые можно записать в два ряда - по шестнадцать букв в каждом:

Получится русский аналог шифра ROT13 - РОТ16 :) При шифровке верхнюю букву меняют на нижнюю, а нижнюю - на верхнюю. Ещё более простой вариант литореи - оставляют только двадцать согласных букв:

Получается шифр РОТ10 . При шифровании меняют только согласные, а гласные и остальные, не попавшие в таблицу, оставляют как есть. Получается что-то типа «словарь → лсошамь» и т.п.

Если же в качестве ключа использовать целую книгу (например, словарь), то можно зашифровывать не отдельные буквы, а целые слова и даже фразы. Тогда координатами слова будут номер страницы, номер строки и номер слова в строке. На каждое слово получится три числа. Можно также использовать внутреннюю нотацию книги - главы, абзацы и т.п. Например, в качестве кодовой книги удобно использовать Библию, ведь там есть четкое разделение на главы, и каждый стих имеет свою маркировку, что позволяет легко найти нужную строку текста. Правда, в Библии нет современных слов типа «компьютер» и «интернет», поэтому для современных фраз лучше, конечно, использовать энциклопедический или толковый словарь. Хотя если заранее договориться о некой применяемой фене, например, «смоковница» - это «компьютер», «грех» - это «байт» и т.п., то на основании Библии можно будет шифровать и современные тексты.

Это были шифры замены, в которых буквы заменяются на другие. А ещё бывают , в которых буквы не заменяются, а перемешиваются между собой.

Необходимость в шифровании переписки возникла еще в древнем мире, и появились шифры простой замены. Зашифрованные послания определяли судьбу множества битв и влияли на ход истории. Со временем люди изобретали все более совершенные способы шифрования.

Код и шифр - это, к слову, разные понятия. Первое означает замену каждого слова в сообщении кодовым словом. Второе же заключается в шифровании по определенному алгоритму каждого символа информации.

После того как кодированием информации занялась математика и была разработана теория криптографии, ученые обнаружили множество полезных свойств этой прикладной науки. Например, алгоритмы декодирования помогли разгадать мертвые языки, такие как древнеегипетский или латынь.

Стеганография

Стеганография старше кодирования и шифрования. Это искусство появилось очень давно. Оно буквально означает «скрытое письмо» или «тайнопись». Хоть стеганография не совсем соответствует определениям кода или шифра, но она предназначена для сокрытия информации от чужих глаз.

Стеганография является простейшим шифром. Типичными ее примерами являются проглоченные записки, покрытые ваксой, или сообщение на бритой голове, которое скрывается под выросшими волосами. Ярчайшим примером стеганографии является способ, описанный во множестве английских (и не только) детективных книг, когда сообщения передаются через газету, где малозаметным образом помечены буквы.

Главным минусом стеганографии является то, что внимательный посторонний человек может ее заметить. Поэтому, чтобы секретное послание не было легко читаемым, совместно со стеганографией используются методы шифрования и кодирования.

ROT1 и шифр Цезаря

Название этого шифра ROTate 1 letter forward, и он известен многим школьникам. Он представляет собой шифр простой замены. Его суть заключается в том, что каждая буква шифруется путем смещения по алфавиту на 1 букву вперед. А -> Б, Б -> В, ..., Я -> А. Например, зашифруем фразу «наша Настя громко плачет» и получим «общб Обтуа дспнлп рмбшеу».

Шифр ROT1 может быть обобщен на произвольное число смещений, тогда он называется ROTN, где N - это число, на которое следует смещать шифрование букв. В таком виде шифр известен с глубокой древности и носит название «шифр Цезаря».

Шифр Цезаря очень простой и быстрый, но он является шифром простой одинарной перестановки и поэтому легко взламывается. Имея подобный недостаток, он подходит только для детских шалостей.

Транспозиционные или перестановочные шифры

Данные виды шифра простой перестановки более серьезны и активно применялись не так давно. В Гражданскую войну в США и в Первую мировую его использовали для передачи сообщений. Его алгоритм заключается в перестановке букв местами - записать сообщение в обратном порядке или попарно переставить буквы. Например, зашифруем фразу «азбука Морзе - тоже шифр» -> «акубза езроМ - ежот рфиш».

С хорошим алгоритмом, который определял произвольные перестановки для каждого символа или их группы, шифр становился устойчивым к простому взлому. Но! Только в свое время. Так как шифр легко взламывается простым перебором или словарным соответствием, сегодня с его расшифровкой справится любой смартфон. Поэтому с появлением компьютеров этот шифр также перешел в разряд детских.

Азбука Морзе

Азбука является средством обмена информации и ее основная задача - сделать сообщения более простыми и понятными для передачи. Хотя это противоречит тому, для чего предназначено шифрование. Тем не менее она работает подобно простейшим шифрам. В системе Морзе каждая буква, цифра и знак препинания имеют свой код, составленный из группы тире и точек. При передаче сообщения с помощью телеграфа тире и точки означают длинные и короткие сигналы.

Телеграф и азбука был тем, кто первый запатентовал «свое» изобретение в 1840 году, хотя до него и в России, и в Англии были изобретены подобные аппараты. Но кого это теперь интересует... Телеграф и азбука Морзе оказали очень большое влияние на мир, позволив почти мгновенно передавать сообщения на континентальные расстояния.

Моноалфавитная замена

Описанные выше ROTN и азбука Морзе являются представителями шрифтов моноалфавитной замены. Приставка «моно» означает, что при шифровании каждая буква изначального сообщения заменяется другой буквой или кодом из единственного алфавита шифрования.

Дешифрование шифров простой замены не составляет труда, и в этом их главный недостаток. Разгадываются они простым перебором или частотным анализом. Например, известно, что самые используемые буквы русского языка - это «о», «а», «и». Таким образом, можно предположить, что в зашифрованном тексте буквы, которые встречаются чаще всего, означают либо «о», либо «а», либо «и». Исходя из таких соображений, послание можно расшифровать даже без перебора компьютером.

Известно, что Мария I, королева Шотландии с 1561 по 1567 г., использовала очень сложный шифр моноалфавитной замены с несколькими комбинациями. И все же ее враги смогли расшифровать послания, и информации хватило, чтобы приговорить королеву к смерти.

Шифр Гронсфельда, или полиалфавитная замена

Простые шифры криптографией признаны бесполезными. Поэтому множество из них было доработано. Шифр Гронсфельда — это модификация шифра Цезаря. Данный способ является значительно более стойким к взлому и заключается в том, что каждый символ кодируемой информации шифруется при помощи одного из разных алфавитов, которые циклически повторяются. Можно сказать, что это многомерное применение простейшего шифра замены. Фактически шифр Гронсфельда очень похож на рассмотренный ниже.

Алгоритм шифрования ADFGX

Это самый известный шифр Первой мировой войны, используемый немцами. Свое имя шифр получил потому, что алгоритм шифрования приводил все шифрограммы к чередованию этих букв. Выбор самих же букв был определен их удобством при передаче по телеграфным линиям. Каждая буква в шифре представляется двумя. Рассмотрим более интересную версию квадрата ADFGX, которая включает цифры и называется ADFGVX.

A D F G V X
A J Q A 5 H D
D 2 E R V 9 Z
F 8 Y I N K V
G U P B F 6 O
V 4 G X S 3 T
X W L Q 7 C 0

Алгоритм составления квадрата ADFGX следующий:

  1. Берем случайные n букв для обозначения столбцов и строк.
  2. Строим матрицу N x N.
  3. Вписываем в матрицу алфавит, цифры, знаки, случайным образом разбросанные по ячейкам.

Составим аналогичный квадрат для русского языка. Например, создадим квадрат АБВГД:

А Б В Г Д
А Е/Е Н Ь/Ъ А И/Й
Б Ч В/Ф Г/К З Д
В Ш/Щ Б Л Х Я
Г Р М О Ю П
Д Ж Т Ц Ы У

Данная матрица выглядит странно, так как ряд ячеек содержит по две буквы. Это допустимо, смысл послания при этом не теряется. Его легко можно восстановить. Зашифруем фразу «Компактный шифр» при помощи данной таблицы:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Фраза К О М П А К Т Н Ы Й Ш И Ф Р
Шифр бв гв гб гд аг бв дб аб дг ад ва ад бб га

Таким образом, итоговое зашифрованное послание выглядит так: «бвгвгбгдагбвдбабдгвдваадббга». Разумеется, немцы проводили подобную строку еще через несколько шифров. И в итоге получалось очень устойчивое к взлому шифрованное послание.

Шифр Виженера

Данный шифр на порядок более устойчив к взлому, чем моноалфавитные, хотя представляет собой шифр простой замены текста. Однако благодаря устойчивому алгоритму долгое время считался невозможным для взлома. Первые его упоминания относятся к 16-му веку. Виженер (французский дипломат) ошибочно считается его изобретателем. Чтобы лучше разобраться, о чем идет речь, рассмотрим таблицу Виженера (квадрат Виженера, tabula recta) для русского языка.

Приступим к шифрованию фразы «Касперович смеется». Но, чтобы шифрование удалось, нужно ключевое слово — пусть им будет «пароль». Теперь начнем шифрование. Для этого запишем ключ столько раз, чтобы количество букв из него соответствовало количеству букв в шифруемой фразе, путем повтора ключа или обрезания:

Теперь по как по координатной плоскости, ищем ячейку, которая является пересечением пар букв, и получаем: К + П = Ъ, А + А = Б, С + Р = В и т. д.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Шифр: Ъ Б В Ю С Н Ю Г Щ Ж Э Й Х Ж Г А Л

Получаем, что "касперович смеется" = "ъбвюснюгщж эйхжгал".

Взломать шифр Виженера так сложно, потому что для работы частотного анализа необходимо знать длину ключевого слова. Поэтому взлом заключается в том, чтобы наугад бросать длину ключевого слова и пытаться взломать засекреченное послание.

Следует также упомянуть, что помимо абсолютно случайного ключа может быть использована совершенно разная таблица Виженера. В данном случае квадрат Виженера состоит из построчно записанного русского алфавита со смещением на единицу. Что отсылает нас к шифру ROT1. И точно так же, как и в шифре Цезаря, смещение может быть любым. Более того, порядок букв не должен быть алфавитным. В данном случае сама таблица может быть ключом, не зная которую невозможно будет прочесть сообщение, даже зная ключ.

Коды

Настоящие коды состоят из соответствий для каждого слова отдельного кода. Для работы с ними необходимы так называемые кодовые книги. Фактически это тот же словарь, только содержащий переводы слов в коды. Типичным и упрощенным примером кодов является таблица ASCII — международный шифр простых знаков.

Главным преимуществом кодов является то, что расшифровать их очень сложно. почти не работает при их взломе. Слабость же кодов — это, собственно, сами книги. Во-первых, их подготовка — сложный и дорогостоящий процесс. Во-вторых, для врагов они превращаются в желанный объект и перехват даже части книги вынуждает менять все коды полностью.

В 20-м веке многие государства для передачи секретных данных использовали коды, меняя кодовую книгу по прошествии определенного периода. И они же активно охотились за книгами соседей и противников.

"Энигма"

Всем известно, что "Энигма" — это главная шифровальная машина нацистов во время II мировой войны. Строение "Энигмы" включает комбинацию электрических и механических схем. То, каким получится шифр, зависит от начальной конфигурации "Энигмы". В то же время "Энигма" автоматически меняет свою конфигурацию во время работы, шифруя одно сообщение несколькими способами на всем его протяжении.

В противовес самым простым шифрам "Энигма" давала триллионы возможных комбинаций, что делало взлом зашифрованной информации почти невозможным. В свою очередь, у нацистов на каждый день была заготовлена определенная комбинация, которую они использовали в конкретный день для передачи сообщений. Поэтому даже если "Энигма" попадала в руки противника, она никак не способствовала расшифровке сообщений без введения нужной конфигурации каждый день.

Взломать "Энигму" активно пытались в течение всей военной кампании Гитлера. В Англии в 1936 г. для этого построили один из первых вычислительных аппаратов (машина Тьюринга), ставший прообразом компьютеров в будущем. Его задачей было моделирование работы нескольких десятков "Энигм" одновременно и прогон через них перехваченных сообщений нацистов. Но даже машине Тьюринга лишь иногда удавалось взламывать сообщение.

Шифрование методом публичного ключа

Самый популярный из который используется повсеместно в технике и компьютерных системах. Его суть заключается, как правило, в наличии двух ключей, один из которых передается публично, а второй является секретным (приватным). Открытый ключ используется для шифровки сообщения, а секретный — для дешифровки.

В роли открытого ключа чаще всего выступает очень большое число, у которого существует только два делителя, не считая единицы и самого числа. Вместе эти два делителя образуют секретный ключ.

Рассмотрим простой пример. Пусть публичным ключом будет 905. Его делителями являются числа 1, 5, 181 и 905. Тогда секретным ключом будет, например, число 5*181. Вы скажете слишком просто? А что если в роли публичного числа будет число с 60 знаками? Математически сложно вычислить делители большого числа.

В качестве более живого примера представьте, что вы снимаете деньги в банкомате. При считывании карточки личные данные зашифровываются определенным открытым ключом, а на стороне банка происходит расшифровка информации секретным ключом. И этот открытый ключ можно менять для каждой операции. А способов быстро найти делители ключа при его перехвате — нет.

Стойкость шрифта

Криптографическая стойкость алгоритма шифрования — это способность противостоять взлому. Данный параметр является самым важным для любого шифрования. Очевидно, что шифр простой замены, расшифровку которого осилит любое электронное устройство, является одним из самых нестойких.

На сегодняшний день не существует единых стандартов, по которым можно было бы оценить стойкость шифра. Это трудоемкий и долгий процесс. Однако есть ряд комиссий, которые изготовили стандарты в этой области. Например, минимальные требования к алгоритму шифрования Advanced Encryption Standart или AES, разработанные в NIST США.

Для справки: самым стойким шифром к взлому признан шифр Вернама. При этом его плюсом является то, что по своему алгоритму он является простейшим шифром.

Решение задачи определения ключа путем простого перебора всех возможных вариантов, как правило, является непрактичным, за исключением использования очень короткого ключа. Следовательно, если криптоаналитик хочет иметь реальные шансы на вскрытие шифра, он должен отказаться от «лобовых» методов перебора и применить другую стратегию. При раскрытии многих схем шифрования может применяться статистический анализ, использующий частоту появления отдельных символов или их комбинаций. Для усложнения решения задачи вскрытия шифра с использованием статистического анализа К. Шеннон предложил две концепции шифрования, получившие название смешения (confusion ) и диффузии (diffusion ). Смешение – это применение такой подстановки, при которой взаимосвязь между ключом и шифрованным текстом становится как можно более сложной. Применение данной концепции усложняет применение статистического анализа, сужающего область поиска ключа, и дешифрование даже очень короткой последовательности криптограммы требует перебора большого количества ключей. В свою очередь диффузия – это применение таких преобразований, которые сглаживают статистические различия между символами и их комбинациями. В результате использование криптоаналитиком статистического анализа может привести к положительному результату только при перехвате достаточно большого отрезка шифрованного текста.

Реализация целей провозглашаемых данными концепциями достигается путем многократного применения элементарных методов шифрования таких, как метод подстановки, перестановки и скремблирования.

10.4.1. Метод подстановки.

Простейшим и имеющим наибольшую историю является метод подстановки, суть которого заключается в том, что символ исходного текста заменяется другим, выбранным из этого или другого алфавита по правилу, задаваемому ключом шифрования. Местоположение символа в тексте при этом не изменяется. Одним из ранних примеров использования метода постановки является шифр Цезаря , который использовался Гаем Юлием Цезарем во время его Галльских походов. В нем каждая буква открытого текста заменялась другой, взятой из того же алфавита, но циклически сдвинутого на определенное количество символов. Применение данного метода шифрования иллюстрирует пример, представленный на рис.10.3, в котором шифрующее преобразование основано на использовании алфавита с циклическим сдвигом на пять позиций.

Рис. 10.3 , а )

Исходный текст

Криптограмма

Рис. 10.3 , б )

Очевидно, что ключом шифра служит величина циклического сдвига. При выборе другого ключа, чем указано в примере, шифр будет изменяться.

Другим примером классической схемы, основанной на методе подстановки, может служить система шифрования, называемая квадратом Полибиуса . Применительно к русскому алфавиту данная схема может быть описана следующим образом. Первоначально объединяются в одну буквы Е, Ё; И, Й и Ъ, Ь, истинное значение которых в дешифрованном тексте легко восстанавливается из контекста. Затем 30 символов алфавита размещаются в таблицу размером 65, пример заполнения которой представлен на рис. 10.4.

Рис. 10.4.

Шифрование любой буквы открытого текста осуществляется заданием ее адреса (т.е. номера строки и столбца или наоборот) в приведенной таблице. Так, например, слово ЦЕЗАРЬ шифруется с помощью квадрата Полибиуса как 52 21 23 11 41 61. Совершенно ясно, что изменение кода может быть осуществлено в результате перестановок букв в таблице. Следует также заметить, что те, кто посещал экскурсию по казематам Петропавловской крепости, должно быть памятны слова экскурсовода о том, как заключенные перестукивались между собой. Очевидно, что их способ общения полностью подпадает под данный метод шифрования.

Примером полиалфавитного шифра может служить схема, основанная на т.н. прогрессивном ключе Тритемиуса . Основой данного способа шифрования служит таблица, представленная на рис. 10.5, строки которой представляют собой циклически сдвинутые на одну позицию копии исходного алфавита. Так, первая строка имеет нулевой сдвиг, вторая циклически сдвинута на одну позицию влево, третья – на две позиции относительно первой строки и т.д.

Рис. 10.5.

Один из методов шифрования с помощью подобной таблицы состоит в использовании вместо первого символа открытого текста символа из первого циклического сдвига исходного алфавита, стоящего под шифруемым символом, второго символа открытого текста – из строки, соответствующей второму циклическому сдвигу и т.д. Пример шифрования сообщения подобным образом представлен ниже (рис. 10.6).

Открытый текст

Шифрованный текст

Рис. 10.6.

Известны несколько интересных вариантов шифров, основанных на прогрессивном ключе Тритемиуса. В одном из них, называемом методом ключа Вижинера , применяется ключевое слово, которое указывает строки для шифрования и расшифрования каждого последующего символа открытого текста: первая буква ключа указывает строку таблицы на рис. 10.5, с помощью которой шифруется первый символ сообщения, вторая буква ключа определяет строку таблицы, шифрующей второй символ открытого текста и т.д. Пусть в качестве ключа выбрано слово «ТРОМБ», тогда сообщение, зашифрованное с помощью ключа Вижинера, может быть представлено следующим образом (рис. 10.7). Очевидно, что вскрытие ключа возможно осуществить на основе статистического анализа шифрограммы.

Открытый текст

Шифрованный текст

Рис. 10.7.

Разновидностью этого метода является т.н. метод автоматического (открытого ) ключа Вижинера , в котором в качестве образующего ключа используется единственная буква или слово. Этот ключ дает начальную строку или строки для шифрования первого или нескольких первых символов открытого текста аналогично ранее рассмотренному примеру. Затем в качестве ключа для выбора шифрующей строки используются символы открытого текста. В приведенном ниже примере в качестве образующего ключа использована буква «И» (рис. 10.8):

Открытый текст

Шифрованный текст

Рис. 10.8.

Как показывает пример, выбор строк шифрования полностью определяется содержанием открытого текста, т.е. в процесс шифрования вводится обратная связь по открытому тексту.

Еще одной разновидностью метода Вижинера служит метод автоматического (шифрованного ) ключа Вижинера . В нем, подобно шифрованию с открытым ключом, также используется образующий ключ и обратная связь. Отличие состоит в том, что после шифрования с помощью образующего ключа, каждый последующий символ ключа в последовательности берется не из открытого текста, а из получаемой криптограммы. Ниже представлен пример, поясняющий принцип применения данного метода шифрования, в котором, как и ранее, в качестве образующего ключа использована буква «И» (рис. 10.9):

Открытый текст

Шифрованный текст

Рис. 10.9.

Как видно из приведенного примера, хотя каждый последующий символ ключа определяется предшествующим ему символом криптограммы, функционально он зависит от всех предшествующих символов открытого сообщения и образующего ключа. Следовательно, наблюдается эффект рассеивания статистических свойств исходного текста, что затрудняет применение статистического анализа криптоаналитиком. Слабым звеном данного метода является то, что шифрованный текст содержит символы ключа.

По нынешним стандартам шифрование по методу Вижинера не считается защищенным, основным же вкладом является открытие того, что неповторяющиеся ключевые последовательности могут быть образованы с использованием либо самих сообщений, либо функций от сообщений.

Вариантом реализации подстановочной технологии, который в достаточной степени реализует концепцию смешения, служит следующий пример, базирующийся на нелинейном преобразовании. Поток информационных бит предварительно разбивается на блоки длиной m , причем каждый блок представляется одним из различных символов. Затем множество из
символов перемешивается таким образом, чтобы каждый символ заменялся другим символом из этого множества. После операции перемешивания символ вновь превращается вm –битовый блок. Устройство, реализующее описанный алгоритм при
, представлено нарис. 10.10, где в таблице задано правило перемешивания символов множества из
элементов.

Рис. 10.10.

Не составляет труда показать, что существует
различных подстановок или связанных с ними возможных моделей. В связи, с чем при больших значенияхm задача криптоаналитика становится в вычислительном плане практически невозможной. Например, при
число возможных подстановок определяется как
, т.е. представляет собой астрономическое число. Очевидно, что при подобном значенииm данное преобразование с помощью блока подстановки (substitution block , S –блок) можно считать обладающим практической секретностью. Однако его практическая реализация вряд ли возможна, поскольку предполагает существование
соединений.

Убедимся теперь, что S –блок, представленный на рис. 10.10, действительно осуществляет нелинейное преобразование, для чего воспользуемся принципом суперпозиций: преобразование
является линейным, если. Предположим, что
, а
. Тогда, а, откуда следует, чтоS –блок является нелинейным.

10.4.2. Метод перестановки.

При перестановке (или транспозиции ) в соответствии с ключом изменяется порядок следования символов открытого текста, а значение символа при этом сохраняется. Шифры перестановки являются блочными, т. е. исходный текст предварительно разбивается на блоки, в которых и осуществляется заданная ключом перестановка.

Простейшим вариантом реализации данного метода шифрования может служить рассмотренный ранее алгоритм перемежения, суть которого заключается в разбиении потока информационных символов на блоки длиной
, построчной записи его в матрицу памяти размеромстрок истолбцов и считывании по столбцам. Иллюстрацией данному алгоритму служит пример с
на рис. 10.11, в ходе которого производится запись фразыX =«скоро начнется экзаменационная пора». Тогда на выходе устройства перестановки будет получена криптограмма вида

Рис. 10.11.

Рассмотренный вариант метода перестановки может быть усложнен введением ключей
и
, определяющих порядок записи строк и считывания столбцов соответственно, иллюстрацией чему служит таблица на рис. 10.12. Результата преобразования будет иметь следующий вид

Рис. 10.12.

На рис. 10.13 приведен пример бинарной перестановки данных (линейная операция), из которого видно, что данные просто перемешиваются или переставляются. Преобразование осуществляется с помощью блока перестановки (permutation block , P –блок). Технология перестановки, реализуемая этим блоком, имеет один основной недостаток: она уязвима по отношению к обманным сообщениям. Обманное сообщение изображено на рис. 10.13 и заключается в подаче на вход одной единственной единицы при остальных нулях, что позволяет обнаружить одну из внутренних связей. Если криптоаналитику необходимо осуществить анализ подобной схемы с помощью атаки открытого текста, то он отправит последовательность подобных обманных сообщений, смещая при каждой передаче единственную единицу на одну позицию. В результате подобной атаки будут установлены все связи входа и выхода. Данный пример демонстрирует, почему защищенность схемы не должна зависеть от ее архитектуры.

10.4.3. Метод гаммирования .

Попытки приблизиться к совершенной секретности демонстрируют многие современные телекоммуникационные системы, использующие операцию скремблирования. Подскремблированием понимается процесс наложения на коды символов открытого текста кодов случайной последовательности чисел, которую называют также гаммой (по названию буквы  греческого алфавита, используемой в математических формулах для обозначения случайного процесса). Гаммирование относится к поточным методам шифрования, когда следующие друг за другом символы открытого текста последовательно превращаются в символы шифрограммы, что повышает скорость преобразования. Так, например, поток информационных бит поступает на один вход сумматора по модулю 2, изображенного на рис. 10.14, тогда как на второй – скремблирующая двоичная последовательность
. В идеале последовательность
должна быть случайной последовательностью с равновероятными значениями нулей и единиц. Тогда выходной шифрованный поток
будет статистически независимым от информационной последовательности
, а значит, будет выполняться достаточное условие совершенной секретности. В действительности абсолютная случайность
не является необходимой, поскольку в противном случае получатель не сможет восстановить открытый текст. Действительно, восстановление открытого текста на приемной стороне должно производиться по правилу
, так что на приемной стороне должна генерироваться точно такая же скремблирующая последовательность и с той же фазой. Однако вследствие абсолютной случайности
данная процедура становится невозможной.

На практике в качестве скремблирующих широкое применение нашли псевдослучайные последовательности (ПСП), которые могут быть воспроизведены на приемной стороне. В технологии поточного шифрования для формирования ПСП обычно используют генератор на основелинейного регистра сдвига с обратной связью (linear feedback shift register (LFSR)). Типичная структура генератора ПСП, представленная на рис. 10.15, включает регистр сдвига, который состоит из – ичных элементов задержки или разрядов, имеющихвозможных состояний и хранящих некоторый элемент поля
в течение тактового интервала, схема обратной связи, включающей умножители элементов (состояний), хранящихся в разрядах, на константы, и сумматоров. Формирование ПСП описывается рекуррентным соотношением вида

где коэффициенты
– фиксированные константы, принадлежащие
, согласно которому каждый следующий элемент последовательности вычисляется на основанииn предшествующих.

Поскольку число различных состояний регистра конечно (не более ) неизбежна ситуация, когда после некоторого числа тактов состояние повторится в виде одного из ранее случившихся. Однако, стартуя с некоторой начальной загрузки, т.е. фиксированного состояния, схема на рис. 10.15 сформирует только единственную последовательность, определяемую упомянутой рекурсией. Следовательно, повторение состояния регистра ведет к повторению всех последующих генерируемых символов, означающее, что любая ПСП периодична. Более того, в случае нулевого состояния регистра (наличия нулей во всех разрядах) всегда будет формироваться бесконечная вырожденная последовательность, состоящая только из одних нулей. Очевидно, что подобный случай абсолютно бесперспективен, так что нулевое состояние регистра должно быть исключено. В результате остается не более
допустимых состояний регистра, что ограничивает максимально возможный период последовательности величиной, не большей
.

Пример 10.4.1. На рис. 10.16, a , представлена реализация генератора на основе регистра сдвига с линейной обратной связью, формирующего двоичную псевдослучайную последовательность периода
. Отметим, что в случае двоичной ПСП умножение на единицу эквивалентно простому соединению выхода разряда с сумматором. Рис. 10.16,b , иллюстрирует следующие друг за другом содержания регистра (состояния разрядов), а также состояния выхода обратной связи (точка ОС на схеме) при подаче тактовых импульсов. Последовательность считывается в виде последовательных состояний крайнего правого разряда. Считывание состояний других разрядов приводит к копиям той же самой последовательности, сдвинутой на один или два такта.

На первый взгляд можно предположить, что использование ПСП большого периода может обеспечить достаточно высокую защищенность. Так, например, в сотовой системе мобильной связи стандарта IS-95 в качестве скремблирующей используется ПСП периода
в числе элементарных чипов. При чиповой скорости 1.228810 6 симв/сек ее период составляет:

Следовательно, можно предполагать, что поскольку последовательность не повторяется в течение такого длительного периода, то она может рассматриваться случайной и обеспечивать совершенную секретность. Однако существует коренное отличие псевдослучайной последовательности от действительно случайной последовательности: псевдослучайная последовательность формируется согласно некоторому алгоритму. Таким образом, если известен алгоритм, то будет известна и сама последовательность. В результате этой особенности схема шифрования, использующая линейный регистр сдвига с обратной связью, оказывается уязвимой к атаке известного открытого текста.

Для определения отводов обратной связи, начального состояния регистра и всей последовательности криптоаналитику достаточно иметь всего
бит открытого текста и соответствующий им шифрованный текст. Очевидно, что величина 2n значительно меньше периода ПСП, равного
. Проиллюстрируем упомянутую уязвимость на примере.

Пример 10.4.2. Пусть в качестве скремблирующей используется ПСП периода
, генерируемая с помощью рекурсии вида

при начальном состоянии регистра 0001. В результате будет сформирована последовательность . Предположим, что криптоаналитику, которому ничего неизвестно о структуре обратной связи генератора ПСП, удалось получить
бит криптограммы и ее открытого эквивалента:

Тогда, сложив обе последовательности по модулю 2, криптоаналитик получает в свое распоряжение фрагмент скремблирующей последовательности, который показывает состояние регистра сдвига в различные моменты времени. Так, например, первые четыре бита ключевой последовательности отвечают состоянию регистра в некоторый момент времени . Если теперь сдвигать окно, выделяющее четверку битов на одну позицию вправо, то будут получены состояния регистра сдвига в последовательные моменты времени
. Учитывая линейную структуру схемы обратной связи, можно записать, что

где символ ПСП, который вырабатывается схемой обратной связи и подается на вход первого разряда регистра, а
определяет отсутствие или наличиеi –го соединения между выходом разряда регистра сдвига и сумматором, т.е. схему обратной связи.

Анализируя состояния регистра сдвига в четыре последовательные момента времени можно составить следующую систему четырех уравнений с четырьмя неизвестными:

Решение данной системы уравнений дает следующие значения коэффициентов:

Таким образом, определив схему соединений обратной связи линейного регистра и зная его состояние в момент времени , криптоаналитик способен воспроизвести скремблирующую последовательность в произвольный момент времени, а значит, способен дешифровать перехваченную криптограмму.

Обобщив рассмотренный пример на случай произвольного регистра сдвига памяти n , исходное уравнение может быть представлено в виде

,

а система уравнений записана в следующей матричной форме

,

где
, а
.

Можно показать, что столбцы матрицы линейно независимы и, значит, существует обратная матрица
. Следовательно

.

Обращение матрицы требует порядка операций, так что при
имеем
, что для компьютера со скоростью работы одна операция за 1мкс потребует 1 сек на обращение матрицы. Очевидно, что слабость регистра сдвига обусловлена линейностью обратной связи.

Чтобы затруднить аналитику вычисление элементов ПСП при сопоставлении фрагментов открытого текста и шифровки, применяется обратная связь по выходу и шифротексту. На рис. 10.17 поясняется принцип введения обратной связи по шифротексту.

Рис. 10.17. Поточное шифрование с обратной связью.

Сначала передается преамбула, в которой содержится информация о параметрах генерируемой ПСП, в том числе и о значении начальной фазы Z 00 . По каждым n сформированным символам шифрограммы вычисляется и устанавливается в генераторе новое значение фазы
. Обратная связь делает метод гаммирования чувствительным к искажениям криптограммы. Так, из-за помех в канале связи могут исказиться некоторые принятые символы, что приведет к вычислению ошибочного значения фазы ПСП и затруднит дальнейшую расшифровку, но после полученияn правильных символов шифрованного текста система восстанавливается. В то же время такое искажение можно объяснить попыткой злоумышленника навязать ложные данные.



Поделитесь с друзьями или сохраните для себя:

Загрузка...