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

Симметричные криптосистемы

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

В настоящее время симметричные шифры - это:

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

2. Поточные шифры - в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Криптографическая система с открытым ключом

Криптографическая система с открытым ключом (или Асимметричное шифрование, Асимметричный шифр) -- система шифрования информации, при которой ключ, которым зашифровывается сообщение и само зашифрованное сообщение передаётся по открытому, (то есть незащищённому, доступному для наблюдения) каналу. Для генерации открытого ключа и для прочтения зашифрованного сообщения получатель использует секретный ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколе SSL и основанных на нём протоколах прикладного уровня HTTPS, SSH и т. д.

Рис. 7.

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

2. Отправитель с помощью открытого ключа шифрует сообщение.

3. Получатель с помощью закрытого ключа дешифрует сообщение.

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

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

Особенности системы

Преимущество асимметричных шифров перед симметричными шифрами состоит в отсутствии необходимости передачи секретного ключа. Сторона, желающая принимать зашифрованные тексты, в соответствии с используемым алгоритмом вырабатывает пару «открытый ключ -- закрытый ключ». Значения ключей связаны между собой, однако вычисление одного значения из другого должно быть невозможным с практической точки зрения. Открытый ключ публикуется в открытых справочниках и используется для шифрования информации контрагентом. Закрытый ключ держится в секрете и используется для расшифровывания сообщения, переданного владельцу пары ключей. Начало асимметричным шифрам было положено в 1976 году в работе Уитфилда Диффи и Мартина Хеллмана «Новые направления в современной криптографии». Они предложили систему обмена общим секретным ключом на основе проблемы дискретного логарифма. Вообще, в основу известных асимметричных криптосистем кладётся одна из сложных математических проблем, которая позволяет строить односторонние функции и функции-ловушки. Например, криптосистема Ривеста-Шамира-Адельмана использует проблему факторизации больших чисел, а криптосистемы Меркля-Хеллмана и Хора-Ривеста опираются на так называемую задачу об укладке рюкзака.

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

Гибридная (или комбинированная) криптосистема -- это система шифрования, обладающая всеми достоинствами криптосистемы с открытым ключом, но лишенная ее основного недостатка -- низкой скорости шифрования.

Принцип: Криптографические системы используют преимущества двух основных криптосистем: симметричной и асимметричной криптографии. На этом принципе построены такие программы, как PGP и GnuPG.

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

Шифрование: Большинство шифровальных систем работают следующим образом. Для симметричного алгоритма (3DES, IDEA, AES или любого другого) генерируется случайный ключ. Такой ключ, как правило, имеет размер от 128 до 512 бит (в зависимости от алгоритма). Затем используется симметричный алгоритм для шифрования сообщения. В случае блочного шифрования необходимо использовать режим шифрования (например, CBC), что позволит шифровать сообщение с длиной, превышающей длину блока. Что касается самого случайного ключа, он должен быть зашифрован с помощью открытого ключа получателя сообщения, и именно на этом этапе применяется криптосистема с открытым ключом (RSA или Алгоритм Диффи -- Хеллмана). Поскольку случайный ключ короткий, его шифрование занимает немного времени. Шифрование набора сообщений с помощью асимметричного алгоритма -- это задача вычислительно более сложная, поэтому здесь предпочтительнее использовать симметричное шифрование. Затем достаточно отправить сообщение, зашифрованное симметричным алгоритмом, а также соответствующий ключ в зашифрованном виде. Получатель сначала расшифровывает ключ с помощью своего секретного ключа, а затем с помощью полученного ключа получает и всё сообщение.

Цифровая подпись обеспечивает:

* Удостоверение источника документа. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.

* Защиту от изменений документа. При любом случайном или преднамеренном изменении документа (или подписи) изменится шифр, следовательно, подпись станет недействительной.

Возможны следующие угрозы цифровой подписи:

*Злоумышленник может попытаться подделать подпись для выбранного им документа.

*Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила.

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

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

*Злоумышленник может обманом заставить владельца подписать какой-либо документ, например используя протокол слепой подписи.

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

Алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.

Секретная связь на основе симметричной криптосистемы.

Для организации секретной связи традиционно используются симметричные шифрсистемы. «Штатными» Действующими лицами таких протоколов секретной связи являются отправитель, адресат и посредник, обеспечивающий пользователей ключами. Для рассмотрения вопросов защиты информации следует добавить в этот список «нештатных» участников: пассивного и активного нарушителя. Задача протокола – передать секретное сообщение x от отправителя адресату. Последовательность действий выглядит следующим образом:
1. Отправитель и адресат договариваются об используемой симметричной шифрсистеме, т.е. о семействе отображений E = {}, kK.
2. Отправитель и адресат договариваются о секретном ключе связи k, т.е. об используемом отображении E.
3. Отправитель шифрует открытый текст x с помощью отображения , т.е. создаёт криптограмму y = (x).
4. Криптограмма y передаётся по линии связи адресату.
5. Адресат расшифровывает криптограмму y используя тот же ключ k и отображение ^(-1), обратное к отображению Ek и читает сообщение x= ^(-1)(y).
Шаг 2 протокола реализуется с помощью посредника, третьей стороны, которую условно можно назвать центром генерации и распределения ключей (ЦГРК) (некоторые протоколы секретной связи на основе асимметричных шифрсистем не использую посредника, в них функции ЦГРК выполняются пользователями).
Существенной особенностью протокола является секретность ключа k который передается отправителю и адресату либо в открытом виде по каналу связи, защищённому от действий криптоаналитика, либо в шифрованном виде по открытому каналу связи. Защищённый канал может иметь относительно невысокую пропускную способность, но должен надёжно защищать ключевую информацию от несанкционированного доступа. Ключ k должен оставаться в секрете до, во время и после реализации протокола, иначе нарушитель, завладев ключом, может расшифровать криптограмму и прочитать сообщение. Отправитель и адресат могут выполнить шаг 1 протокола публично (секретность шифрсистемы необязательна), но шаг 2 они должны выполнить секретно (секретность ключа обязательна).
Такая необходимость вызвана тем, что линии связи, в особенности протяжённые, уязвимы с точки зрения вмешательства пассивного и активного нарушителей. Пассивный нарушитель (криптоаналитик), желая получить доступ к сообщению x, контролирует линию связи на шаге 4 протокола. Не вмешиваясь в реализацию протокола, он перехватывает криптограмму y с целью раскрытия шифра.

Криптоанализ симметричной криптосистемы.

Разрабатывая шифрсистему, криптограф обычно исходит из следующих предположений о возможностях криптоаналитика:
1. Криптоаналитик контролирует линию связи.
2. Криптоаналитику известно устройство семейства E отображений шифра.
3. Криптоаналитику неизвестен ключ k, т.е. неизвестно отображение , использованное для получения криптограммы y.
В этих условиях криптоаналитик пытается решить следующие задачи, называемые задачами дешифрования.
1. Определить открытый текст x и использованный ключ k по перехваченной криптограмме y, т.е. построить такой алгоритм дешифрования , при котором (y)=(x,k). Данная постановка задачи предполагает использование криптоаналитиком статистических свойств открытого текста.
2. Определить использованный ключ k по известному открытому и шифрованному текстам, т.е. построить такой алгоритм дешифрования , при котором (x,y)=k. Такая постановка задачи имеет смысл, когда криптоаналитик перехватил несколько криптограмм, полученных с использование ключа k, и располагает открытыми текстами не для всех перехваченных криптограмм. В этом случае, решив задачу дешифрования второго типа, он «прочтёт» все открытые тексты, зашифрованные с использованием ключа k.
3. Определить используемый ключ k по специально подобранному открытому тексту x и соответствующему шифрованному тексту y, т.е. построить алгоритм дешифрования x такой, что x(y)=k. Подобная постановка задачи возникает тогда, когда криптоаналитик имеет возможность тестирования криптосистемы, т.е. генерирования криптограммы для специально подобранного открытого текста. Чаще такая постановка задачи возникает при анализе асимметричных систем. имеется разновидность этой задачи дешифрования, когда используется специально подобранный шифртекст.
Для решения задач дешифрования криптоаналитик использует или шифрованное сообщение y, или пару (x,y), состоящую из открытого и шифрованного сообщений, или комплект таких сообщений или пар сообщений. Эти сообщения или комплекты сообщений называют шифрматериалом. Используемым для дешифрования количеством шифрматериала называется длина этих сообщений или суммерная длина комплекта сообщений. Количество шифрматериала является важной характеристикой метода дешифрования. Расстоянием единственности шифра называется наименьшее число знаков шифрованного текста, необходимых для однозначного определения ключа. Во многих практических случаях оно равно длине ключа, если ключ и криптограмма суть слова из равномощных алфавитов. При одинаковом количестве шифрматериала дешифровальные задачи первого типа отличаются более высокой вычислительной сложностью по сравнению с задачами второго и третьего типа, наименьшую вычислительную сложность имеют задачи тестирования.
В ряде случаев криптоаналитик может решить задачу восстановления семейства E отображений шифра по известной паре (x,y) открытого и шифрованного текстов, пользуясь некоторыми дополнительными условаиями. Эта задача может быть сформулирована как «дешифровка чёрного ящика» по известным входам и соответствующим выходам.
Активный нарушитель нарушает реализацию протокола. Он может прервать связь на шаге 4, полагая, что отправитель не сможет больше ничего сообщить адресату. Он может также перехватить сообщение и заменить его своим собственным. Если бы активный нарушитель узнал ключ (контролируя шаг 2 или проникнув в криптосистему), он мог бы зашифровать своё сообщение и отправить его адресату вместо перехваченного сообщения, что не вызвало бы у последнего никаких подозрений. Не зная ключа, активный нарушитель может создать лишь случайную криптограмму, которая после расшифрования предстанет случайной последовательностью.

Требования к протоколу.

Рассмотренный протокол подразумевает доверие отправителя, адресата и третьей стороны в лице ЦГРК. Это является слабостью данного протокола. Впрочем, абсолютных гарантий безупречности того или иного протокола не существует, так как выполнение любого протокола связано с участием людей и зависит, в частности, от квалификации и надёжности персонала. Таки образом, по организации секретной связи с использованием симметричной криптосистемы можно сделать следующие выводы.
1. Протокол должен защищать открытый текст и ключ от несанкционированного доступа постороннего лица на всех этапах передачи информации от источника к получателю сообщений. Секретность ключа более важна, чем секретность нескольких сообщений, шифруемых на этом ключе. Если ключ скомпрометирован (украден, угадан, раскрыт, выкуплен), то нарушитель, имеющий ключ, может расшифровать все зашифрованные на этом ключе сообщения. Кроме того, нарушитель сможет имитировать одну из переговаривающихся сторон и генерировать фальшивые сообщения с целью ввести в заблуждение другую сторону. При частой смене ключей эта проблема сводится к минимуму.
2. Протокол не должен допускать выхода в линию связи «лишней» информации, предоставляющей криптоаналитику противника дополнительные возможности дешифрования криптограмм. Протокол должен защищать информацию не только от посторонних лиц, но и от взаимного обмана действующих лиц протокола.
3. Если допустить, что каждая пара пользователей сети связи использует отдельный ключ, то число необходимых ключей равно n*(n-1)/2 для n пользователей. Это означает, что при большом n генерация, хранение и распределение ключей становится трудоёмкой проблемой.

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

Основные сведения

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

Классическими примерами таких алгоритмов являются симметричные криптографические алгоритмы , перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка «Магический квадрат»

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Перестановка «Магический квадрат»

Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее, их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу - 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
.ирдзегюСжаоеянП

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

История

Требования

Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру. Для этого шифр должен иметь «эффект лавины » - должно происходить сильное изменение шифроблока при 1-битном изменении входных данных (в идеале должны меняться значения 1/2 бит шифроблока).

Также важным требованием является отсутствие линейности (то есть условия f(a) xor f(b) == f(a xor b)), в противном случае облегчается применение дифференциального криптоанализа к шифру.

Общая схема

В настоящее время симметричные шифры - это:

  • блочные шифры . Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами . Результатом повторения раундов является лавинный эффект - нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
  • поточные шифры , в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования . Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля . Алгоритм строит схему шифрования на основе функции F(D, K), где D - порция данных размером вдвое меньше блока шифрования, а K - «ключ прохода» для данного прохода. От функции не требуется обратимость - обратная ей функция может быть неизвестна. Достоинства сети Фейстеля - почти полное совпадение дешифровки с шифрованием (единственное отличие - обратный порядок «ключей прохода» в расписании), что значительно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна - f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путём обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

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

Параметры алгоритмов

Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:

  • длина ключа
  • число раундов
  • длина обрабатываемого блока
  • сложность аппаратной/программной реализации
  • сложность преобразования

Виды симметричных шифров

блочные шифры
  • AES (англ. Advanced Encryption Standard ) - американский стандарт шифрования
  • ГОСТ 28147-89 - советский и российский стандарт шифрования, также является стандартом СНГ
  • DES (англ. Data Encryption Standard ) - стандарт шифрования данных в США
  • 3DES (Triple-DES, тройной DES)
  • RC2 (Шифр Ривеста (Rivest Cipher или Ron’s Cipher))
  • IDEA (International Data Encryption Algorithm, международный алгоритм шифрования данных)
  • CAST (по инициалам разработчиков Carlisle Adams и Stafford Tavares)
определенный алгоритм шифрования, на вход которому подаются исходное незашифрованное сообщение, называемое также plaintext , и ключ. Выходом алгоритма является зашифрованное сообщение, называемое также ciphertext . Ключ является значением, не зависящим от шифруемого сообщения. Изменение ключа должно приводить к изменению зашифрованного сообщения.

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

Незашифрованное сообщение будем обозначать P или M, от слов plaintext и message. Зашифрованное сообщение будем обозначать С, от слова ciphertext .

Безопасность, обеспечиваемая традиционной криптографией , зависит от нескольких факторов.

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

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

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

Клод Шеннон ввел понятия диффузии и конфузии для описания стойкости алгоритма шифрования.

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

Конфузия - это уничтожение статистической взаимосвязи между зашифрованным текстом и ключом.

Если Х - это исходное сообщение и K - криптографический ключ , то зашифрованный передаваемый текст можно записать в виде

Получатель, используя тот же ключ, расшифровывает сообщение

Противник, не имея доступа к K и Х, должен попытаться узнать Х , K или и то, и другое.

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

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

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


Рис. 2.2.

Области применения

Стандартный алгоритм шифрования должен быть применим во многих приложениях:

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

Платформы

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

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

Дополнительные требования

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

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

Криптографическая защита информации

Александра Прохорова

Фрагмент из книги Александра Прохорова "Интернет: Как это работает", информацию о книге можно найти по адресу .

Рассмотрим конкретный пример. Пусть директор фирмы А отправляет директору фирмы В важный документ по электронной почте (рис. 1). Какие возникают проблемы с точки зрения безопасности коммуникации?

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

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

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

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

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

Шифрование с помощью ключа

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

Предположим, что мы хотим зашифровать открытый текст "Привет Вася" с помощью простейшего алгоритма - замены букв их номерами в алфавите. В результате мы получим зашифрованный текст вида: 17 18 10 3 6 20 3 1 19 33. Очевидно, что если посторонний узнает алгоритм шифрования, то использовать его в дальнейшем невозможно.

Избежать данного недостатка возможно используя шифрование с ключом. Для того, чтобы пояснить суть процесса шифрования с ключом, приведем простой пример (рис. 3).

Выпишем буквы текста и под ними запишем их номера в алфавите. Третей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.

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

Очевидно, что чем длиннее ключ шифра, тем больше необходимо переборов различных комбинаций при расшифровке и тем соответственно сложнее раскодировать сообщение. Шифры с ключами длиной более 128 бит называют сильными.

Принцип шифрования с секретным ключом

Шифрование с симметричным ключом

Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо (рис. 4). Каждый имеет свой секретный ключ (определенный секретный код), который можно использовать для шифрования данных, перед отправкой в Сеть. Для того, чтобы нагляднее изобразить схему шифрования, будем пользоваться пиктограммами (рис. 2), то есть изображать ключ в виде обычного ключа, а зашифрованное сообщение в виде документа заклеенного в конверт. Тогда процесс шифрования и расшифровки можно представить в виде рис. 3.

Схема шифрования с секретным (симметричным) ключом

Пользователь А зашифровывает сообщение своим секретным ключом, отсылает сообщение по Сети, а получатель В (пользуясь таким же секретным ключом) расшифровывает сообщение. Если посмотреть на рисунок, нетрудно убедиться, что схема симметрична. Левый и правый пользователь пользуются одинаковыми (симметричными) ключами, поэтому данный вид шифрования получил название шифрования с симметричным ключом.

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

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

Шифрование с публичным ключом

Шифрование с помощью публичного ключа основано на использовании пары ключей: закрытого (частного) и открытого (публичного) ключей.

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

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

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

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

Схема, обеспечивающая секретность (конфиденциальность), представлена на рис. 6.

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

Для того чтобы обеспечить конфиденциальный обмен сообщениями в переписке двух лиц необходимо иметь две пары ключей рис 5.

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

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