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

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

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

Основы шифрования. Шифрование с закрытым ключом. Шифрование с открытым ключом

Шифрование

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

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

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

Чтобы создать защищенный каталог, при попытке доступа к которому открывается диалоговое окно, мы воспользовались самым простым методом аутентификации, который обеспечивает сервер Apache. Этот метод шифрует пароли перед их сохранением. Мы создали пользователя с паролем password. Этот пароль был зашифрован и сохранен в виде строки aWDuA3X3H.mc2. Как видите, открытый и зашифрованный текст внешне не похожи друг на друга.

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

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

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

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

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

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

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

Наиболее широко используемым алгоритмом с закрытым ключом является стандарт Data Encryption Standard (DES). Этот алгоритм, разработанный компанией IBM в семидесятых годах прошлого века, принят в качестве американского стандарта для коммерческих и несекретных правительственных коммуникаций. Современные скорости вычислений на порядок превышают скорости вычислений в семидесятых годах, поэтому алгоритм DES считается устаревшим как минимум с 1998 года.

Другие известные системы шифрования с закрытым ключом — это RC2, RC4, RC5, тройной DES (triple DES) и IDEA. Тройной DES-алгоритм обеспечивает достаточную степень защиты. Этот алгоритм использует тот же метод шифрования, что и DES, но применяет его трижды, используя при этом до трех разных ключей. Открытый текст шифруется с использованием первого ключа, дешифруется при помощи второго ключа, а затем шифруется с применением третьего ключа.

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

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

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

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

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

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

Наиболее известный алгоритм с открытым ключом — это алгоритм RSA, который был разработан Ривестом, Шамиром и Адельманом в Мичиганском технологическом институте (MIT) и опубликован в 1978 году. Ранее алгоритм RSA был защищен патентом, но срок действия патента истек в сентябре 2000 года.

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