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

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

    открытый ключ K: используется для шифрования информации, вычисляется из секретного ключа k;

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

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

Асимметричные системы называют еще двухключевыми криптографическими системами или криптосистемами с открытым ключом.

Обобщенная схема асимметричной криптосистемы шифрования

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

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

Процесс шифрования и передачи сообщения

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

1.Подготовительный этап.

Абонент В генерирует пару ключей: секретный ключ k B и открытый ключ К в . Открытый ключ К в посылается абоненту А и остальным абонентам (или делается доступным, например, на разделяемом ресурсе).

2.Использование - обмен информацией между абонентами А и В.

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

Односторонние функции

Асимметричные алгоритмы основаны на использовании односторонних функций.

Функция F:X→Y называется односторонней, если выполняются следующие два условия:

    существует эффективный алгоритм, вычисляющий F(x) для любого x X ;

    не существует эффективного алгоритма инвертирования функции F , т.е. алгоритма, позволяющего определить значение x по значению F(x) .

«Эффективным» называется полиномиальный алгоритм, т.е. алгоритм, который для получения результата для входа длины n тратит не более P(n) шагов, где P - некоторый полином.

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

Односторонняя функция с секретом - это функция F k : X Y , зависящая от параметра k K (этот параметр называется секретом), для которой выполняются следующие условия:

    при любом k K существует эффективный алгоритм, вычисляющий F k (x ) для любого x X ;

    при неизвестном k не существует эффективного алгоритма инвертирования функции F k ;

    при известном k существует эффективный алгоритм инвертирования функции F k .

Алгоритм RSA

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

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

Функция Эйлера (p ) от натурального p есть количество чисел, меньших p и взаимно простых с n (число 1 взаимно просто с любым числом).

    Если p - простое число, то (p ) = p - 1.

    Если p - простое, a - натуральное число, то (p a ) = p a - p a -1 .

    Если p и q взаимно простые, то (pq ) = (p ) (q )

    Генерация ключей выполняется по следующему алгоритму:

    1. Выбираются два больших простых числа p, q (на сегодняшний день обычно выбирают числа, содержащие от 200 до 400 знаков)

    2. вычисляется их произведение n , которое не может быть разложено на множители за разумное время. Данное произведение называется модулем

    3 . Вычисляется значение функции Эйлера

    φ(n) = φ(pq ) = (p − 1)(q − 1).

    4. Выбирается целое число e (1< e < (n )) , взаимно простое со значением (n ) . Обычно в качестве e берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма 17, 257 или 65537. Число e называется открытой экспонентой

    5. Вычисляется число d , удовлетворяющее условию:

    de 1(mod (n ))

    или в другом виде:

    de=1+k (n )

    Число d называется секретной экспонентой

    6. Пара P = (e , n ) публикуется в качестве открытого ключа системы RSA.

    7. Пара S = (d , n ) называется секретным ключом RSA и держится в тайне.

1. Шифрование сообщения

Чтобы зашифровать данные по известному ключу P = (e,n) необходимо разбить шифруемый текст на боки, каждый из которых может быть представлен в виде числа M(i) = 0, 1, … , n-1. Далее текст шифруется как последовательность чисел M(i), преобразованных по следующей формуле:

C(i) = M(i)emod(n)

2. Расшифровка сообщения

Чтобы расшифровать сообщение используя секретный ключ P=(d,n) необходимо каждое число из последовательности в зашифрованном сообщении преобразовать по формуле:

M(i) = C(i)dmod(n)

В результате будет получено множество чисел M(i), которое представляет собой исходный текст.

Информатика, кибернетика и программирование

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

1. Основы криптографии.

Необходимость серьезного подхода к защите информации приводит нас к основным понятиям криптографии, понятиям «цифровой защиты», «цифровой подписи» и шифрования.

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

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

2. Симметричное и асимметричное шифрование.

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

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

Рис. 1.3.

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

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

Из симметричных алгоритмов шифрования широкое распространение получил алгоритм шифрования DES (изобретенный фирмой IBM), который рекомендован к использованию в открытых секторах экономики США. Этот алгоритм был изначально обречен на лимитированную продолжительность жизни, вследствие ограничения длинны ключа до 56 битов. В настоящее время профессионал способен взломать такой ключ за плату вполне приемлемую для бюджетов многих стран и корпораций.

Положение усугубляется тем, что по законодательству США к экспорту в качестве программных продуктов разрешены системы шифрования с ключом не более 40 бит. Т.е. покупая шифросистему с ключом 1024 или 2048, и более бит надо знать, что при смене ключа активной (изменяющейся) частью будет часть ключа в 40 бит. Симметричные системы шифрования имеют один общий недостаток, состоящий в сложности рассылки ключей. При перехвате ключа третьей стороной такая система криптозащиты будет скомпроментирована. Так при замене ключа его надо конфиденциально переправить участникам процедур шифрования. Очевидно, что этот метод не годится, когда нужно установить защищенные соединения с тысячами и более абонентов Интернет. Основная проблема, связана с этой методологией, и состоит она в том, как сгенерировать и безопасно передать ключи участникам взаимодействия. Как установить безопасный канал передачи информации между участниками взаимодействия для передачи ключей по незащищенным каналам связи? Отсутствие безопасного метода обмена ключами ограничивает распространение симметричной методики шифрования в Интернет.

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

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

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

Открытый ключ не нужно прятать. Неважно кому известен данный ключ, поскольку он предназначен только для шифрования данных. Этот метод пригоден для широкого применения. Если присвоить каждому пользователю в Интернет свою пару ключей и опубликовать открытые ключи как номера в телефонной книге, то практически все смогут обмениваться друг с другом шифрованными сообщениями. Это похоже на коробку с двумя дверцами с разных сторон. Каждая такая дверца имеет свой замок. В коробку кладут документ, запирают, отпирают с другой стороны ключом получателя.
Такой алгоритм криптографической защиты получил название RSA . Название составлено из первых букв фамилий 3 американских математиков, разработавших алгоритм. Использовалась теория простых чисел.

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

3. Ц ифровая подпись.

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

Когда документ (вложение письма) защищается ЦП, то эта ЦП учитывает не только документ, но и еще закрытый ключ отправителя и открытый ключ получателя. Только владелец закрытого ключа может правильно подписать текст документа.

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

ЦП лишь удостоверяет подлинность документа, но не защищает его от несанкционированного прочтения.

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

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

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

4. Обработка информации по комбинированному алгоритму.

Последовательность обработки информации по комбинированному алгоритму представлена ниже на (рис.4.1).

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

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

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

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

Теперь шифруется сеансовый ключ с использованием асимметричного алгоритма шифрования-расшифровки и асимметричного открытого ключа получателя.

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

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

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

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

Получатель отделяет электронную подпись от исходного текста.

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

Если она признается достоверной, текст не был изменен.

Удачным примером такой комбинированной системы можно признать продукты Notarius и Athena фирмы «Ланкрипто». Отличие от описанной схемы в том, что алгоритм электронной подписи и шифрования разбиты на две независимые процедуры и при изготовлении симметричного сеансового ключа шифрования в ключ добавляется случайное число «маркант». Затем этот «маркант» добавляют к тексту уже зашифрованного сообщения и в открытом виде пересылают корреспонденту для дешифрации сообщения. Тот, получив сообщение, отцепляет «маркант» и с помощью своего секретного и открытого ключа отправителя и «марканта» создает симметричный ключ дешифрации полученного сообщения. Так как «маркант» меняется от сеанса к сеансу, даже имея расшифрованный текст сообщения невозможно предугадать ключ следующего сеанса.

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

Как защищать открытые ключи от подмены

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

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

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

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

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

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

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

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

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

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

А как же решается проблема безопасного обновления и передачи ключей по незащищенным телекоммуникационным каналам? В США она решается таким образом:

Безопасно создаются и распространяются асимметричные открытые и секретные ключи. Секретный асимметричный ключ передается его владельцу. Открытый асимметричный ключ хранится в базе данных X.500 и администрируется центром выдачи сертификатов (по-английски - Certification Authority или CA).

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

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

После получения асимметричный открытый ключ получателя расшифровывается с помощью асимметричного открытого ключа CA и алгоритма асимметричного шифрования/расшифровки.

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

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

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

5. Сертификация криптографических средств.

Криптографические средства защиты применяются давно, но в последнее время по ряду причин у всех на устах слова «лицензия», «сертификат», Гостехкомиссия, ФАПСИ. При этом мало кто внятно может объяснить, что именно можно делать для защиты своей информации, а за что вас могут привлечь к ответственности.

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

Для того чтобы выпускать сертифицированные продукты фирма должна получить лицензию на такую деятельность. Лицензии и сертификаты в области криптографических средств выдают ФАПСИ и Гостехкомиссия. Покупать криптографические средства лучше только сертифицированные у фирм имеющих лицензию на такого рода деятельность. В законодательной сфере сейчас действует указ Президента РФ номер 334 обязующий госучреждения применять только сертифицированные средства шифрования и закон об информации гласящий, что для защиты несекретной и негрифованной информации (любой своей) можно применять любые средства шифрования.

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

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

Вместе с тем, законодательно установлена обязанность пользователей, распространителей и разработчиков сертифицировать в соответствующих госорганах все применяемые средства защиты информации. Указ номер 334 гласит: «… Запретить деятельность юридических и физических лиц связанных с разработкой, реализацией и эксплуатацией шифровальных средств без лицензий выданных ФАПСИ». Правда этот указ не действует, но пока его никто не отменял. То - есть, если вы имели несчастье приобрести сертифицированные ФАПСИ средства шифрования, то вы обязаны получить в ФАПСИ лицензию на их использование. Такую же лицензию должны, соответственно, получить и те, с кем вы обмениваетесь шифрованными сообщениями.

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

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

Таким образом, коммерческие банки в отношениях с клиентами имеют право применять несертифицированные ФАПСИ системы электронного обмена (документооборота) при условии, что в таких системах официально не предусмотрены средства шифрования. Юридическая ответственность наступает только в том случае, когда средства шифрования становятся предметом предпринимательской деятельности. Чтобы ни банку, ни его клиентам не морочить себе голову с лицензированием использования шифровальных средств, в системах «Банк-Клиент» необходимо во всех договорах слова «шифрование» заменить на «кодирование» и далее жить спокойно. Закон, что столб – нельзя перепрыгнуть, но обойти просто.

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

Этот же закон большое внимание уделяет удостоверяющим центрам.

Удостоверяющий центр:

Изготавливает сертификаты ключей подписей;

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

Приостанавливает и возобновляет действие сертификатов ключей подписей, а также аннулирует их;

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

Проверяет уникальность открытых ключей электронных цифровых подписей в реестре сертификатов ключей подписей и архиве удостоверяющего центра;

Выдает сертификаты ключей подписей в форме документов на бумажных носителях и (или) в форме электронных документов с информацией об их действии;

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

Так, что и здесь, во всех договорах о признании ЭЦП участниками договора, слова «Электронная цифровая подпись», лучше заменить на «Цифровая подпись».

Чтобы предостеречь от использования встроенных в базы данных средств шифрования, упомянем лишь один интересный факт. Есть компания, называемая AccessData, в штате Юга США с телефоном 1-800-658-5199. Она всего за $185 продает пакет программ для персональных ЭВМ, взламывающий встроенные схемы шифрования WordPerfect, Word, Lotus 1-2-3, Excel, Quattro Pro, Paradox и Oracle. Программы шифрования похожи на лекарства. Пилюля, полученная от шарлатана, обычно выглядит точно так же, как целительное снадобье.

6. Дальнейшее развитие криптографических средств.

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

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

И I ВМ, и N Т, и Los Alamos National Labs , все в настоящее время ударились в разработку методов, позволяющих использовать достижения квантовой физики для передачи шифрованных сообщений в системах космического и военного использования. В I ВМ работают над созданием подобных систем для банков и институтов электронной коммерции.

Однако положение дел с квантовым шифрованием вдохновляет далеко не всех. То есть - вдохновляет в основном теоретиков. «Честно говоря, квантовая физика в настоящее время лежит за пределами уровня понимания большинства людей, — говорят эксперты по вопросам шифрования, — поэтому трудно представить, чтобы кто-то кинулся сейчас же производить необходимое оборудование. По крайней мере, в ближайшие годы этого, не произойдет». Некоторые специалист, вообще уверен, что проблема конфиденциальной информации из точки А в точку Б на сегодняшний день решена. Они уверены, что в обозримом будущем надобности для технологий квантового шифрования пока нет, а технологии RSA , способные создавать ключи длиною до 2048 бит, пока еще вполне надежны. Хотя в январе 1998 года Electronic Frontier Foundation и дешифровала за 22,5 часа сообщение, закодированное по 56-битному стандарту DES (настоящее время является максимально допустимым для экспорта из США стандартом технологий шифрования), эксперты считают этот случай непоказательным. «Одно дело крэкнуть 56-битный стандарт, — говорит они, — взломать сообщение со 128-битным ключом примерно в миллиард или даже в триллион раз сложнее, Не думаем, что в течение нашей жизни появится компьютер, который сможет сотворить такое».

Несмотря на такие прогнозы, быстрое развитие технологий вообще и технологий шифрования, равным, образом, как и технологий взлома шифрованных кодов в частности, заставляют I ВМ и Los Alamos National Labs двигаться дальше по пути создания новых технологий шифрования, в сторону квантовых шифров. Для того чтобы взломать квантовый код, взломщику придется сначала нарушить законы физики и только затем подобрать нужные цифры. Хотя оборудование, необходимое для реализации квантового шифрования, пока еще лежит где-то в области научной фантастики. Рабочая лабораторная версия уже есть. В настоящее время работы идут над тем, чтобы вывести эту технологию из лаборатории и поставить на промышленные рельсы.

Кроме того, в настоящее время серьезно расширилась сфера применения криптографических средств за счет их применения в сетях VPN . В современном компьютеризованном мире основным способом транспортировки информации становится электронный. По линиям связи ныне перемещаются документы, сведения из баз данных, номера кредитных карточек и файлы самого разного содержания. Все это нашло свое место в новой технологии сетей в сетях VPN (Virtual Private Network ). Эта технология позволяет создавать глобальные корпоративные сети большой протяженности где вместо собственных линий связи используется сеть Интернета, информация по которой переносится в зашифрованном виде. Таким образом достигается безопасность информации, передаваемой через незащищенные линии связи. Сети VPN имеют самое различное применение. Они могут связывать удаленный офис с головной организацией, соединять воедино несколько корпоративных сетей. Предоставлять сотрудникам или доверенным клиентам компании доступ внутрь сети компании к конфиденциальной информации.


Электронная подпись

Шифруется Секретным 1

Текст

Секретный ключ 1

Открытый ключ 1

Компьютер “Два ”

Компьютер “Раз ”

Открытый ключ 2

Секретный симметричный

Сеансовый ключ ключ

Текст и подпись шифруется симметричным сеансовым ключом

Шифрованные данные

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

Текст Электронная

подпись

Шифруется

Секретным 1

Все зашифровано симметричным

сеансовым ключом

К зашифрованному тексту приписан

Зашифрованный Сеансовый ключ

Шифрованные данные

Рис. 4.1.


А также другие работы, которые могут Вас заинтересовать

51125. Спектральний аналіз сигналів за Фурьє 1.43 MB
Як відомо, спектри всіх дискретних сигналів періодичні, а амплітудні спектри є парними функціями частоти. Засобами MatLAB можна розрахувати дві половини одного періоду спектру, які є дзеркальними копіями одна одної відносно частоти Найквіста. Через це на всіх графіках амплітудних спектрів достатньо і необхідно виводити лише половину періоду спектру, оскільки вона повністю описує амплітудний спектр
51126. Разработка текстового редактора с использованием файлового ввода/вывода 54.26 KB
Задание на работу: Разработать текстовый редактор с использованием файлового ввода/вывода. Код программы (файл Form1.cs)...
51127. Исследование точности САУ в установившемся режиме 77.99 KB
Графики ошибок Усилительное звено Пи-регулятор Дифференциальное звено Расчеты значений установившейся ошибки: Усилительное звено Пи-регулятор Дифференциальное звено Вывод В ходе лабораторной работы было исследовано влияния степени астатизма на установившуюся ошибку при ступенчатом воздействии.
51128. Фільтрація сигналів 889.81 KB
Мета роботи: набути навичок проектування цифрових фільтрів, задавання специфікації фільтрів залежно від властивостей сигналів, які треба фільтрувати; набути навичок реалізації дискретної фільтрації сигналів у середовищі MatLAB.
51130. Вейвлет-аналіз сигналів 914.01 KB
Мета роботи: дослідити відображення властивостей сигналів у вейвлет-скейлограмі; набути навичок реалізації вейвлет-перетворення сигналів у середовищі MatLAB
51131. СИНТЕЗ УПРАВЛЯЮЩЕГО АВТОМАТА В ПРОИЗВОЛЬНОМ БАЗИСЕ 126.01 KB
Постановка задачи: Собрать и наладить схему управляющего автомата подавая входные сигналы xj с тумблерного регистра Используя подготовленные тесты показать правильность работы схемы подавая синхросигналы с генератора одиночных импульсов и анализируя состояние автомата при помощи индикаторных лампочек Проверить работу схемы в динамическом режиме снять временные диаграммы выходных сигналов управляющего автомата. Тип автомата Мура тип триггеров D. Рисунок 1 Исходная ГСА автомата Определим минимальное множество тестов:...
51132. Кореляційний аналіз сигналів. Властивості сигналів з використанням кореляційного аналізу 199.85 KB
Мета роботи: дослідити властивості сигналів з використанням кореляційного аналізу; набути навичок кореляційного аналізу сигналів у середовищі MatLAB. Порядок роботи...
51133. СИНТЕЗ УПРАВЛЯЮЩЕГО АВТОМАТА НА ОСНОВЕ РАСПРЕДЕЛИТЕЛЕЙ СИГНЕЛОВ (РС) 129.3 KB
Цель работы: изучение методики реализации управляющих автоматов с жесткой логикой на основе распределителей сигналов. Постановка задачи: собрать и отладить схему распределителя сигналов; ...

В этой части рассмотрены следующие вопросы:

  • Типы шифров
  • Шифры подстановки
  • Шифры перестановки
  • Методы шифрования
  • Симметричные и асимметричные алгоритмы
  • Симметричная криптография
  • Асимметричная криптография
  • Блочные и поточные шифры
  • Векторы инициализации
  • Гибридные методы шифрования
Симметричные шифры делятся на два основных типа: подстановки (substitution) и перестановки (transposition, permutation). Шифры подстановки заменяют биты, символы или блоки на другие биты, символы или блоки. Шифры перестановки не меняют исходный текст, вместо этого они перемещают исходные значения внутри исходного текста – они переставляют биты, символы или блоки символов для скрытия первоначального смысла.

Шифры подстановки используют ключ, который указывает, как следует выполнять подстановку. В шифре Цезаря каждый символ заменялся символом, расположенным на три позиции дальше него в алфавите. Алгоритмом был алфавит, а ключом – инструкция «сдвигать на три символа».

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

В шифре перестановки значение перемешивается (scrambled) или ставится в другом порядке. Ключ определяет позицию, на которую следует переместить значение, как показано на Рисунке 6-6.

Рисунок 6-6. Шифр перестановки


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

Рисунок 6-7. Связь ключа и алгоритма


Чтобы помешать злоумышленнику, используется ключ, представляющий из себя набор значений, которые указывают, какие ящики должны использоваться, в какой последовательности и с какими значениями. Так, если сообщение А шифруется ключом 1, ключ требует, чтобы сообщение прошло через ящики 1, 6, 4 и 5. Когда нам нужно зашифровать сообщение В, мы используем ключ 2, который требует, чтобы сообщение прошло через ящики 8, 3, 2 и 9. Ключ добавляет случайность и секретность в процесс шифрования.

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

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

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

Функции генерации ключей (KDF – key derivation function) используется для генерации ключей, состоящих из случайных значений. Различные значения могут использоваться независимо или совместно в качестве случайного ключевого материала. Созданы алгоритмы, использующие определенные хэши, пароли и/или «соль», которые много раз проходят через математические функции, указанные алгоритмом. Чем больше раз этот ключевой материал пройдет через указанные функции, тем больший уровень уверенности и безопасности сможет обеспечить криптосистема в целом.


ПРИМЕЧАНИЕ . Помните, что алгоритм остается статичным. Случайность процессов криптографии обеспечивается в основном за счет ключевого материала.


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

Криптографические алгоритмы делятся на симметричные алгоритмы , которые используют симметричные ключи (также называемые секретными ключами (secret key)), и асимметричные алгоритмы , которые используют асимметричные ключи (называемые также открытыми (public key) и закрытыми ключами (private key)).

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

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


Каждой паре пользователей, для защищенного с помощью симметричной криптографии обмена данными, требуется два экземпляра одного и того же ключа. Например, если Дену и Ирине нужно обмениваться данными, им обоим нужно получить копию одного ключа. Если Ден хочет также с использованием симметричной криптографии взаимодействовать с Нормом и Дейвом, ему нужно иметь три отдельных ключа – по одному на каждого друга. Это не является большой проблемой, пока Дену не потребуется взаимодействовать с сотней других людей за несколько месяцев и сохранять историю переписки. Ведь это потребует использования соответствующего ключа для переписки с каждым конкретным получателем. В таком случае это может стать сложнейшей задачей. Если десяти людям необходимо безопасно обмениваться данными друг с другом с использованием симметричной криптографии, им потребуется 45 ключей. Если же взаимодействовать нужно ста людям, им потребуется 4950 ключей. Формула для расчета необходимого количества симметричных ключей выглядит следующим образом:

Число ключей = N(N – 1)/2, где N – число абонентов


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

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

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

Следующий список описывает сильные и слабые стороны криптосистем с симметричными ключами:

Сильные стороны:

  • Гораздо быстрее асимметричных систем
  • При использовании длинного ключа сложно взломать
Слабые стороны:
  • Требует безопасного механизма передачи ключей
  • Каждой паре пользователей нужен уникальный ключ; по мере увеличении количества пользователей, возрастающее число ключей может сделать управление ими просто нереальной задачей
  • Обеспечивает конфиденциальность, но не обеспечивает аутентификацию или неотказуемость
Ниже приведены некоторые примеры симметричных алгоритмов, которые будут подробно рассмотрены позднее в разделе «Блочные и поточные шифры».
  • RC4 , RC5 и RC6
Ссылки по теме:
  • Security in Open Systems, Node 208, “Symmetric Key Cryptography,” by Paul Markovitz, NIST Special Publication 800-7 (July 1994)
В криптографии с симметричными ключами для зашифрования и расшифрования используется один и тот же секретный ключ, тогда как в системах с открытыми ключами для этих целей используются различные (асимметричные ) ключи. При этом два отличающихся асимметричных ключа связаны между собой математически. Если сообщение зашифровано одним ключом, для его расшифрования требуется другой ключ.

В системах с открытыми ключами, создается пара ключей, один из которых является закрытым, другой – открытым. Открытый ключ (public key) может быть известен всем, а закрытый ключ (private key) должен знать только его владелец. Часто открытые ключи хранятся в каталогах и базах данных адресов электронной почты, общедоступных всем желающим использовать эти ключи для зашифрования и расшифрования данных при взаимодействии с отдельными людьми. Рисунок 6-9 иллюстрирует использование отличающихся асимметричных ключей.
Открытый и закрытый ключи асимметричной криптосистемы математически связаны, однако наличие у кого-то открытого ключа другого человека не позволяет узнать соответствующий ему закрытый ключ. Таким образом, если злоумышленник получит копию открытого ключа Боба, это вовсе не значит, что он с помощью какого-то математического волшебства сможет получить соответствующий ему закрытый ключ Боба. Однако, если кто-то получит закрытый ключ Боба, возникнет большая проблема. Поэтому никто кроме владельца не должен иметь доступа к закрытому ключу.

Рисунок 6-9. Асимметричная криптосистема


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

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

Если отправителю в большей степени важна конфиденциальность передаваемой информации, ему следует зашифровать свое сообщение на открытом ключе получателя. Это называют безопасным форматом сообщения (secure message format), поскольку только человек, имеющий соответствующий закрытый ключ, сможет расшифровать это сообщение.

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

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

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

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

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

ПРИМЕЧАНИЕ. Криптография с открытым ключом – это асимметричная криптография. Эти термины взаимозаменяемы.

Ниже указаны сильные и слабые стороны алгоритмов с асимметричными ключами:

Сильные стороны

  • Лучше процесс распространения ключей, чем в симметричных системах
  • Лучше масштабируемость, чем в симметричных системах
  • Могут обеспечить аутентификацию и неотказуемость
Слабые стороны
  • Работают гораздо медленнее симметричных систем
  • Выполняют сложные математические преобразования
Ниже приведены примеры алгоритмов с асимметричными ключами.
  • Криптосистема на основе эллиптических кривых (ECC – Elliptic curve cryptosystem)
  • Алгоритм Диффи-Хеллмана Diffie-Hellman
  • Эль Гамаль (El Gamal)
  • Алгоритм цифровой подписи (DSA – Digital Signature Algorithm)
  • Knapsack
Эти алгоритмы мы рассмотрим далее в этом Домене, в разделе «Типы асимметричных систем».

В Таблице 6-1 приведено краткое резюме основных отличий между симметричными и асимметричными системами.

Таблица 6-1. Различия между симметричными и асимметричными системами


ПРИМЕЧАНИЕ . Цифровые подписи будут рассмотрены позднее в разделе «Цифровые подписи».
Ссылки по теме:
  • Security in Open Systems, Node 210, “Asymmetric Key Cryptography,” by Paul Markovitz, NIST Special Publication 800-7 (July 1994)
  • Frequently Asked Questions About Today’s Cryptography, Version 4.1, Section 2.1.4.5, “What Is Output Feedback Mode?” by RSA Laboratories
Существует два основных типа симметричных алгоритмов: блочные шифры, которые работают с блоками битов, и потоковые шифры, которые обрабатывают по одному биту за раз.

Если для зашифрования и расшифрования данных используется блочный шифр , сообщение делится на блоки битов. Затем эти блоки передаются на обработку математическим функциям, по одному блоку за раз. Представьте, что вам нужно зашифровать сообщение для мамы с помощью блочного шифра, который работает с блоками по 64 бита. Длина вашего сообщения составляет 640 бит, поэтому оно делится на 10 отдельных блоков по 64 бита. Каждый блок последовательно передается на вход математической функции. Этот процесс продолжается до тех пор, пока каждый блок не будет преобразован в шифротекст. После этого вы отправляете зашифрованное сообщение вашей маме. Она использует такой же блочный шифр и тот же ключ. Эти 10 блоков шифротекста последовательно передаются в алгоритм в обратной последовательности до тех пор, пока не будет получен исходный открытый текст.


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

В алгоритмах рассеивание может происходить как на уровне отдельных битов в блоках, так и на уровне самих блоков. Перемешивание выполняется с помощью сложных функций подстановки, чтобы злоумышленник не мог понять, каким образом заменялись исходные значения и получить оригинальный открытый текст. Представьте, что у меня есть 500 деревянных блоков, на каждый их которых нанесена буква. Я выстраиваю их в линию, чтобы составить из них сообщение (открытый текст). Затем я заменяю 300 из этих блоков блоками из другого набора (перемешивание путем подстановки). Затем я переставляю все эти блоки (рассеивание посредством перемешивания) и оставляю эту кучу. Чтобы вы смогли восстановить мое исходное предложение, вам нужно заменить блоки правильными и расставить их в правильной последовательности. Удачи!

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

Рассеивание, с другой стороны, означает, что один бит открытого текста оказывает влияние на несколько бит шифротекста. Замена значения в открытом тексте должна приводить к замене нескольких значений в шифротексте, а не одного. Фактически, в действительно стойком блочном шифре, при замене одного бита в открытом тексте, должны изменяться около 50% битов в шифротексте. Т.е. при изменении всего одного бита в открытом тексте, изменится около половины шифротекста.

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

Рисунок 6-10. Сообщение разделяется на блоки битов, над которыми выполняются функции замещения и рассеивание


Ключ указывает (см. Рисунок 6-10), какие должны использоваться S-боксы в процесе перемешивания исходного сообщения из читаемого открытого текста в нечитаемый шифротекст. Каждый S-бокс содержит различные методы подстановки и перестановки, которые могут быть выполнены над каждым блоком. Это очень простой пример. В реальности большинство блочных шифров работает с блоками размером по 32, 64 или 128 бит и может использовать гораздо больше S-боксов.

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

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

Рисунок 6-11. В поточном шифре биты, сгенерированные генератором ключевого потока, объединяются посредством XOR с битами открытого текста сообщения

ПРИМЕЧАНИЕ . Этот процесс очень похож на использование одноразовых шифровальных блокнотов, описанных ранее. Отдельные биты в одноразовом блокноте используются для шифрования отдельных битов сообщения с помощью операции XOR, а в поточном алгоритме отдельные биты создаются генератором ключевого потока, также используемым для шифрования битов сообщения с использованием операции XOR.

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

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

Рисунок 6-12. Отправитель и получатель должны иметь один и тот же ключ для генерации одинакового ключевого потока



Векторы инициализации (IV – Initialization vectors) – это случайные значения, которые используются алгоритмом для обеспечения отсутствия шаблонов в процессе шифрования. Они используются совместно с ключами и их не нужно шифровать при отправке получателю. Если вектор инициализации не используется, два одинаковых открытых текста, зашифрованные на одном и том же ключе, дадут в результате один и тот же шифротекст. Такой шаблон существенно упростит задачу атакующего по взлому метода шифрования и вскрытию ключа. Если в вашем сообщении есть повторяющаяся часть (фраза или слово), вам нужно убедиться, что при шифровании каждой повторяющейся части открытого текста сообщения, создается различный шифротекст, т.е. не будет создаваться шаблон. Именно для обеспечения большей случайности в процессе шифрования и используется вектор инициализации совместно с ключом.

Стойкие и эффективные поточные шифры имеют следующие характеристики:

  • Длинные периоды неповторяющихся шаблонов в значениях ключевого потока . Биты, генерируемые ключевым потоком должны быть случайны.
  • Статистически непредсказуемый ключевой поток . Биты, получаемые на выходе генератора ключевого потока, не должны быть предсказуемы.
  • Ключевой поток не имеет линейной связи с ключом . Если кто-то получил значения ключевого потока, это не должно привести к получению им значения ключа.
  • Статистически равномерный ключевой поток (примерно равное количество нулей и единиц) . В ключевом потоке не должны преобладать нули или единицы.
Поточные шифры требуют обеспечения случайности и шифруют по одному биту за раз. Это требует больше ресурсов процессора, чем при использовании блочного шифра, поэтому поточные шифры больше подходят для реализации на аппаратном уровне. А блочные шифры, поскольку они не требуют столько ресурсов процессора, проще реализовывать на программном уровне.
ПРИМЕЧАНИЕ . Конечно, существуют и блочные шифры, реализованные на аппаратном уровне, и поточные шифры, работающие на программном уровне. Указанное выше утверждение просто является «лучшей практикой», рекомендациями по разработке и внедрению.


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


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

Совместное использование асимметричных и симметричных алгоритмов


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

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

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

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


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

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

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

Здесь все достаточно просто, вам нужно запомнить следующие аспекты:

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

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

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

Рисунок 6-14. Сеансовый ключ генерируется для каждого сеанса взаимодействия пользователей и действует только в рамках этого сеанса


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




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

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


ПРИМЕЧАНИЕ. Закрытые и симметричные ключи не должны храниться и/или передаваться в виде открытого текста. Хотя это кажется очевидным, уже множество программных продуктов было скомпрометировано именно по этой причине.

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

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

Что такое шифрование

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

Особенностью такого вида передачи данных является использование ключа.

Есть три состояния безопасности:

  • скрытие информации от посторонних;
  • предотвращение изменений;
  • сохранение целостности информации;
  • идентификация отправителя.

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

Бывают два вида шифрования: симметричный и асимметричный.

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

  • отправитель шифрует данные;
  • получатель расшифровывает.

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

Криптостойкость

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

Существует 2 основных типа криптостойкости системы шифрования.

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

Сравнение криптостойкости некоторых систем шифрования

Максимальный размер ключа RSA - 4096 бит.

Он используется для шифрования и подписи. Криптостойкость можно описать как 2,7.1028 для ключа 1300 Бит. Схема применяется во многих стандартах, принцип шифрования RSA один из первых асимметричных алгоритмов.

Размер ключа схемы Эль-Гамаля равен RSA - 4096 Бит. Он используется и для шифрования, и для цифровой подписи. Криптостойкость этой системы не отличается от RSA при одинаковом размере ключа.

В методе DSA используется значительно меньшей ключ - 1024 бита. Применяется он исключительно для цифровой подписи.

Симметричное и асимметричное шифрование

Эти два вида шифрования отличаются количеством ключей и уровнем устойчивости к взлому.

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

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

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

Особенности симметричного шифрования

Симметричная система защита имеет следующие достоинства.


К недостаткам относится следующее:

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

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

Особенности асимметричного шифрования

Применение пары открытый-закрытый ключ можно использовать как:

  • самостоятельное средство защиты информации;
  • средство распределения ключей;
  • средства аутентификации пользователей.

Имеет такие преимущества:

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

В таких алгоритмах сложно внести какие-либо изменения. Подобная система имеет длинные ключи. Если симметричный ключ имеет размер 128 Бит, то ключ RSA - 2304 Бит. Из-за этого страдает скорость расшифровывания - она в 2-3 раза медленнее. Для расшифровки требуются большие вычислительные ресурсы.

Существует очень много примеров симметричной и асимметричной систем шифрования.

Симметричное шифрование - как выглядит?

Пример симметричного шифрования и схема реализации ниже.

  1. Есть два собеседника, которые планируют обменяться конфиденциальной информацией.
  2. Первый собеседник генерирует ключ d, алгоритмы шифрования E и дешифрования D. Затем посылает эту информацию второму собеседнику.
  3. Сообщение дешифруется ключом d.

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

Существуют классические методы.

  1. Простая и двойная перестановка.
  2. Магический квадрат.
  3. Одиночная перестановка.

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

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

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

Примеры асимметричного шифрования

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

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

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

Существует такие основные методы асинхронного шифрования.

  1. Шифр Эль-Гамаля.

RSA

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

Описывается так.

  1. Выбирается два простых числа, например, 3 и 7.
  2. Вычисляется модуль n - произведение двух чисел. Получается 21.
  3. Вычисляется функция Эйлера φ=(p-1)×(q-1)=2×6=12 .
  4. Вычисляется любое простое число e меньше φ и простое с φ. Доступные варианты: 5, 7, 11.

Пара чисел e, n (5, 21) - открытый ключ. Теперь вычисляются числа d и n закрытого ключа. Число d удовлетворяет условие (d×е) mod φ=1 и равняется 17. В итоге вторая пара чисел 17 и 21 - закрытый ключ. Шифрование выполняется следующим образом: сообщение возводится в степень e, берется остаток от деления на n, при этом результат должен быть меньше числа n. Получается 10 - это будут закодированные данные. Для раскодировки e возводится в степень d, вычисляется остаток от деления на n.

DSA

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

  1. Выбор криптографической хэш-функции H(x).
  2. Битность простого числа q должна равняться значению хэш-функции H(x).
  3. Подбор такого простого числа p, чтобы p-1 делился без остатка на q.
  4. Вычисление числа g = h (p-1)/q mod p . h должно быть произвольным числом в диапазоне от 1 до p-1.
  5. Выбирается случайное число k от 0 до q.
  6. Вычисляется r = (g k mod p) mod q .
  7. Затем s = k-1(H(m) + xr)) mod q .
  8. Если r=0 или s=0, выбирается другое число k.

Схема Эль-Гамаля

Шифрование по схеме Эль-Гамаля используется для цифровых подписей. Является продолжением алгоритма Диффи-Хеллмана.

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

Генерация ключей происходит следующим образом.

  1. Выбирается случайное простое число p.
  2. Число g должно быть первообразным корнем p.
  3. Число x должно быть больше 1 и меньше p-1. Это будет закрытый ключ.
  4. Затем вычисляется открытый ключ y по формуле g^x mod p .

При шифровании текста M выбирается системный ключ K. Он больше единицы и меньше p-1. Затем вычисляются числа a и b, которые являются шифротекстом, a = g^k mod p и b = y^k M mod p .

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

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

Рис. 2.1

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

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

Из симметричных алгоритмов шифрования широкое использование получил алгоритм шифрования DES (изобретенный фирмой IBM), который рекомендован в открытых секторах экономики США. Этот алгоритм был изначально обречен на лимитированную продолжительность жизни вследствие ограничения длинны ключа до 56 битов.

В начале 1997 г. алгоритму DES, имеющему ключ в 56 бит, был брошен вызов. 17 июня 1997 г., через 140 дней ключ был расшифрован. Это означало фактическую смерть DES как стандарта шифрования. И действительно, когда в начале 1998 г., следующее соревнование по нахождению ключа DES привело к успеху всего за 39 дней, национальный институт стандартов США (NIST) объявил конкурс на утверждение нового стандарта AES (Advanced Encryption Standard). AES стал полностью открытым симметричным алгоритмом с ключом размером 128, 192, 256 бит.

Положение усугубляется тем, что по законодательству США к экспорту в качестве программных продуктов разрешены системы шифрования с ключом не более 128 бит. То есть, покупая шифросистему с ключом 1024 или 2048 и более бит, надо знать, что при смене ключа активной (изменяющейся) частью будет часть ключа в 128 бит. Симметричные системы шифрования имеют один общий недостаток, состоящий в сложности рассылки ключей. При перехвате ключа третьей стороной такая система криптозащиты будет скомпроментирована. Так при замене ключа его надо конфиденциально переправить участникам процедур шифрования. Очевидно, что этот метод не годится в том случае, когда нужно установить защищенные соединения с тысячами и более абонентов Интернет. Основная проблема состоит в том, как сгенерировать и безопасно передать ключи участникам взаимодействия. Как установить безопасный канал передачи информации между участниками взаимодействия для передачи ключей по незащищенным каналам связи? Отсутствие безопасного метода обмена ключами ограничивает распространение симметричной методики шифрования в Интернет.

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

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

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

Рис. 2.2

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

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

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

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

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

Рис. 2.3

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

Рис. 2.4

Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME.