определить неизменяемые части. Забегая вперед, можно привести в качестве примера шифрмашину "Энигма" (см. главу 9), которая содержала несколько колес; внутри этих колес были провода; распайка проводов внутри колес не менялась, но ежедневно изменялся порядок расположения колес внутри самой машины. Таким образом, распайка проводов являлась неизменяемой частью, а порядок колес - переменной. Взлом системы - это самая трудоемкая часть работы; она может продолжаться несколько недель или даже месяцев и потребовать применения математических методов, поиска и использования ошибок операторов и даже сведений, добытых шпионами.

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

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

Коды и шифры

Хотя слова код и шифр часто употребляются нестрого, мы проведем разграничение между этими понятиями. В коде часто встречающиеся элементы текста (которые могут состоять из одной или более букв, чисел или слов) обычно заменяются четырьмя или пятью буквами или числами, которые называются кодовыми группами и берутся из кодовой книги . Для особенно часто употребительных выражений или знаков кодовая книга может предлагать несколько кодовых групп . Это делается для того, чтобы криптограф мог варьировать ими с целью затруднить их идентификацию. Так, например, в четырехзначном цифровом коде для слова "понедельник" могут быть три альтернативные кодовые группы - к примеру, 1538, либо 2951, либо 7392. Коды мы рассмотрим в главе 6.

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

ошибочно называют "кодом Энигма", безусловно является вовсе не кодом , а

шифрмашиной.

Исторически сложилось так, что вплоть до сравнительно недавнего времени в криптографии преобладали две основные идеи, и многие системы шифрования (в том числе почти все из описанных в первых одиннадцати главах этой книги) были основаны на одной из них или на обеих сразу. Первая идея сводилась к тому, чтобы перетасовать буквы алфавита (как обычно тасуют колоду карт) с целью получить нечто, что можно рассматривать как случайный порядок, перестановку или анаграмму букв. Вторая идея состоит в том, чтобы преобразовать буквы сообщения в числа (например, положив A=0, B=1, ..., Z=25), и затем прибавлять к ним (число за числом) другие числа, называемые гаммой , которые, в свою очередь, могут быть буквами, преобразованными в числа. Если в результате сложения получается число, большее чем 25, вычтем из него 26 (этот способ называется сложением по модулю 26). Результат затем преобразуется обратно

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

Любопытно отметить, что шифр Юлия Цезаря, каким бы незамысловатым он ни был, можно считать примером и того, и другого типа. В первом случае наше "тасование колоды" эквивалентно простому перемещению последних трех карт в начало колоды, так что все буквы смещаются вниз на три позиции, а X, Y и Z оказываются в начале. Во втором случае гаммой является число 3, повторенное бесконечное число раз. Нельзя себе и представить ничего "слабее" такого гаммы.

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

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

*) Вспоминаю, как некий школьник писал сочинение на французском языке о том, как в средние века один путешественник приезжает ночью в гостиницу и стучится в дверь. В ответ он слышит "What Ho! Without." ("Какого чёрта! Убирайся!" - прим. перев. ). Это выражение школьник перевел на французский дословно, подставив французские слова: "Que Ho! Sans." (получилось "Что за хо! Без." - прим. перев. ).Учитель французского языка, прочитав это, потерял на мгновение дар речи, а потом заметил; "Вы, наверно, нашли эти слова в словаре, который раздают бесплатно с мешками сахара".

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

Другой способ скрыть содержание информации - использовать некую персональную скоропись. Этим методом еще в средние века пользовались авторы личных дневников - например, Самюэль Пепис (Samuel Pepys). Такие коды нетрудно вскрыть, если записей в дневнике достаточно. Регулярные повторения некоторых символов (к примеру, знаков, обозначающих дни недели) служат хорошим подспорьем для прочтения некоторых слов и выражений. Примером более основательного труда может послужить дешифрование древней микенской письменности, известной как "линейное письмо Б", где знаки соответствовали слогам древнегреческого языка; заслуга дешифрования этого вида письменности принадлежит Майклу Вентрису*) (см. ).

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

Оценка стойкости системы шифрования

Когда предлагается новая система шифрования, то очень важно оценить ее стойкость ко всем уже известным методам вскрытия в условиях, когда криптоаналитику известен тип используемой системы шифрования, но не во всех деталях. Оценивать стойкость системы шифрования можно для трёх разных ситуаций:

(1)криптоаналитику известны только шифрованные тексты;

(2)криптоаналитику известны шифрованные тексты и исходные открытые тексты к ним;

(3)криптоаналитику известны как шифрованные, так и открытые тексты, которые он сам подобрал.

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

*) Линейное письмо Б (Linear B) - одна из наиболее древних систем греческой письменности. Обнаружено на глиняных табличках в Кноссе (о. Крит) и в Пилосе. Расшифрована Майклом Вентрисом (1922-1956), английским архитектором и лингвистом (прим. перев. ).

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

Коды, обнаруживающие и исправляющие ошибки

Другой класс кодов предназначен для обеспечения безошибочной передачи информации, а не для сокрытия ее содержания . Такие коды называются обнаруживающими и исправляющими ошибки , они являются предметом широкомасштабных математических исследований. Эти коды с самых первых дней существования компьютеров используются для защиты от ошибок в памяти и в данных, записанных на магнитную ленту. Самые первые версии этих кодов, такие, например, как коды Хэмминга, способны обнаружить и исправить единичную ошибку в шестиразрядном символе. В качестве более позднего примера можно привести код, который использовался на космическом корабле "Маринер" для передачи данных с Марса. Созданный с учетом возможного значительного искажения сигнала на его долгом пути к Земле, этот код был способен корректировать до семи ошибок в каждом 32-разрядном "слове". Простым примером кода другого уровня, обнаруживающего , но не исправляющего ошибки, является код ISBN (International Standard Book Number - Международный Стандартный Книжный Номер).Он состоит из десяти знаков (десяти цифр либо девяти цифр с буквой X на конце, которая обозначает число 10), и позволяет осуществить проверку на отсутствие ошибок в номере ISBN. Проверка выполняется следующим образом: вычислим сумму

(первая цифра) 1+(вторая цифра) 2+(третья цифра) 3+...+(десятая цифра) 10.

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

Шифр №1. Картинка

Рисунок или фото, которое напрямую указывает место, где спрятана следующая подсказка, или намек на него: веник +розетка = пылесос
Усложнение: сделайте паззл, разрезав фото на несколько частей.


Шифр 2. Чехарда.

Поменяйте в слове буквы местами: ДИВАН = НИДАВ

Шифр 3. Греческий алфавит.

Закодируйте послание буквами греческого алфавита, а детям выдайте ключ:

Шифр 4. Наоборот.

Пишете задание задом наперед:

  • каждое слово:
    Етищи далк доп йонсос
  • или все предложение, или даже абзац:
    етсем морком момас в - акзаксдоп яащюуделС. итуп монрев ан ыВ

Шифр 5. Зеркально.

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

Шифр 6. Ребус.

Слово кодируется в картинках:



Шифр 7. Следующая буква.

Пишем слово, заменяя все буквы в нем на следующие по алфавиту (тогда Я заменяется на А, по кругу). Или предыдущие, или следующие через 5 букв:).

ШКАФ = ЩЛБХ

Шифр 8. Классика в помощь.

Я брала стихотворение (и говорила детям, какое именно) и шифр из 2х цифр: № строки № буквы в строке.

Пример:

Пушкин "Зимний вечер"

Буря мглою небо кроет,
Вихри снежные крутя;
То, как зверь, она завоет,
То заплачет, как дитя,
То по кровле обветшалой
Вдруг соломой зашумит,
То, как путник запоздалый,
К нам в окошко застучит.

21 44 36 32 82 82 44 33 12 23 82 28

прочитали, где подсказка? :)

Шифр 9. Темница.

В решетку 3х3 вписываете буквы:

Тогда слово ОКНО шифруется так:

Шифр 10. Лабиринт.

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

Итак:

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

А представьте, если обмотать таким образом одного из взрослых гостей!
Дети читают - Следующая подсказка на дяде Васе.
И бегут ощупывать дядю Васю. Эх, если он еще и щекотки боится, то весело будет всем!

Шифр 11. Невидимые чернила.

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

Шифр 12. Белиберда.

Гласные буквы остаются без изменений, а согласные меняются, согласно ключу.
например:
ОВЕКЬ ЩОМОЗКО
читается как - ОЧЕНЬ ХОЛОДНО, если знать ключ:
Д Л Х Н Ч
З М Щ К В

Шифр 13. Окошки.

Детям понравилось неимоверно! Они потом этими окошками весь день друг другу послания шифровали.
Итак: на одном листе вырезаем окошки, столько, сколько букв в слове. Это трафарет, его прикладываем к чистому листу и "в окошках" пишем слово-подсказку. Затем трафарет убираем и на оставшемся чистом месте листа пишем много разных других ненужных букв. Прочитать шифр можно, если приложить трафарет с окошками.
Дети сначала впали в ступор, когда нашли лист, испещренный буквами. Потом крутили туда-сюда трафарет, его же нужно еще правильной стороной приложить!

Шифр 14. Карта, Билли!

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

Это схема нашей улицы. Подсказки здесь - номера домов (чтоб понять, что это вообще наша улица) и хаски. Такая собака живет у соседа напротив.
Дети не сразу узнали местность, задавали мне наводящие вопросы..
Тогда в квесте участвовало 14 детей, поэтому я их обьединила в 3 команды. У них было 3 варианта этой карты и на каждом помечено свое место. В итоге, каждая команда нашла по одному слову:
"ПОКАЖИТЕ" "СКАЗКУ" "РЕПКА"
Это было следующее задание:). После него остались уморительные фото!
На 9ти летие сына не было времени выдумывать квест и я его купила на сайте MasterFuns .. На свой страх и риск, потому что описание там не очень.
Но нам с детьми понравилось, потому что:
  1. недорого (аналог где-то 4х долларов за комплект)
  2. быстро (заплатила - скачала-распечатала - на все про все минут 15-20)
  3. заданий много, с запасом. Ихотя мне не все загадки понравились, но там было из чего выбрать, и можно было вписать свое задание
  4. все оформлено в одном, монстерском, стиле и это придает празднику эффект. Помимо самих заданий к квесту, в комплект входят: открытка, флажки, украшения для стола, приглашения гостям. И все -в монстрах! :)
  5. помимо 9ти летнего именинника и его друзей, у меня есть еще 5тилетняя дочка. Задания ей не по силам, но для нее и подружки тоже нашлось развлечение - 2 игры с монстрами, которые тоже были в наборе. Фух, в итоге - все довольны!

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

Белые пятна

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

Например, вот во что превращается простое и понятное предложение "Встречаемся на берегу озера" - "В стре чаем с Янабер егуоз ера" .

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

Без гласных

Либо можно воспользоваться таким методом – писать текст без гласных букв.

Для примера привожу такое предложение: "Записка лежит в дупле дуба, который стоит на опушке леса" . Шифрованный текст выглядит так: "Зпска лжт в дпл дб, ктр стт н пшке лс" .

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

Читай наоборот

Эта шифровка объединяет в себе сразу два метода. Текст нужно читать справа налево (то есть наоборот), причем пробелы между словами могут быть расставлены наобум.

Вот, прочтите и расшифруйте: "Нелета минвь дуб, маноро тсоп иртомс" .

Второй за первого

Либо каждую букву алфавита можно обозначить следующей за ней буквой. То есть вместо "а" мы пишем "б", вместо "б" напишем "в", вместо "в" - "г" и так далее.

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

Разгадайте, что за фразу мы для вас зашифровали: "Тьъйлб г тжсйбмж фиобуэ мждлп – по ожлпдеб ож тойнбжу щмарф" .

Заместители

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

Вместо первой буквы алфавита мы пишем последнюю, вместо второй – предпоследнюю и так далее. То есть вместо А – Я, вместо Б – Ю, вместо В – Э…

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

Таблицы

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

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

Давайте вместе зашифруем фразу с помощью таблицы: Ночью идем ловить карасей.

Пробел будем обозначать буквой "р", слова пишем сверху вниз. Таблица 3 на 3 (рисуем в клеточках обычного тетрадного листа).

Вот что у нас получается:
Н Ь И М О Т К А Й
О Ю Д Р В Ь А С Р
Ч Р Е Л И Р Р Е.

Решетка

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

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

Ключ в книге

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

Записки выглядели примерно так:
"324 с, 4 а, в, 7 сл.
150 с, 1 а, н, 11 сл…."

Первая цифра обозначала номер страницы,
вторая – номер абзаца,
третья буква – как надо считать абзацы сверху (в) или снизу (н),
четвертая буква – слово.

В моем примере нужные слова нужно искать:
Первое слово: на странице 324, в 4 абзаце сверху, седьмое слово.
Второе слово: на странице 150, в 1 абзаце снизу, одиннадцатое слово.

Процесс расшифровки небыстрый, зато никто из посторонних прочитать послание не сможет.

Воспользоваться старой и малоизвестной системой записи. Даже римские цифры не всегда бывает легко прочитать, особенно с первого взгляда и без справочника. Мало кто сможет «с лёта» определить, что в длинной строчке 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 .

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

Инструкция

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

Решение задачи определения ключа путем простого перебора всех возможных вариантов, как правило, является непрактичным, за исключением использования очень короткого ключа. Следовательно, если криптоаналитик хочет иметь реальные шансы на вскрытие шифра, он должен отказаться от «лобовых» методов перебора и применить другую стратегию. При раскрытии многих схем шифрования может применяться статистический анализ, использующий частоту появления отдельных символов или их комбинаций. Для усложнения решения задачи вскрытия шифра с использованием статистического анализа К. Шеннон предложил две концепции шифрования, получившие название смешения (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 правильных символов шифрованного текста система восстанавливается. В то же время такое искажение можно объяснить попыткой злоумышленника навязать ложные данные.


Close