Security (1027395), страница 4
Текст из файла (страница 4)
Ключом в этом примере являются три буквы.êËÒÛÌÓÍ 2. òËÙ ñÂÁ‡flСовершенно ясно, что если кто-нибудь получит зашифрованное этим способом сообщение и будет знатьалгоритм (куда сдвигать буквы — вверх или вниз по алфавиту), он сможет легко раскрыть ключ методомпростого перебора, который заключается в том, что человек перебирает все возможные комбинации алгоритма до тех пор, пока не получит в результате расшифрованный текст. Обычно, чем длиннее ключ ичем сложнее алгоритм, тем труднее решить задачу расшифровки простым перебором вариантов.Сегодня широко используются такие алгоритмы секретных ключей, как Data Encryption Standard (DES),3DES (или «тройной DES») и International Data Encryption Algorithm (IDEA).
Эти алгоритмы шифруют сообщения блоками по 64 бита. Если объем сообщения превышает 64 бита (как это обычно и бывает), необходимо разбить его на блоки по 64 бита в каждом, а затем каким-то образом свести их воедино. Такоеобъединение, как правило, происходит одним из следующих четырех методов: электронной кодовойкниги (ECB), цепочки зашифрованных блоков (CBC), x-битовой зашифрованной обратной связи (CFB-x)или выходной обратной связи (OFB).Шифрование с помощью секретного ключа чаще всего используется для поддержки конфиденциальности данных и очень эффективно реализуется с помощью неизменяемых «вшитых» программ (firmware).Этот метод можно использовать для аутентификации и поддержания целостности данных, но метод цифровой подписи (о котором мы скажем позже) является более эффективным.
С методом секретных ключей связаны следующие проблемы:●Необходимо часто менять секретные ключи, поскольку всегда существует риск их случайного раскрытия.●Трудно обеспечить безопасное генерирование и распространение секретных ключей.Для получения и безопасного распространения секретных ключей обычно используется алгоритм Диффи-Хеллмана (Diffie-Hellman), который описывается ниже.ÄÒËÏÏÂÚ˘ÌÓ ¯ËÙÓ‚‡ÌËÂАсимметричное шифрование часто называют шифрованием с помощью общего ключа, при котором используются разные, но взаимно дополняющие друг друга ключи и алгоритмы шифрования и расшифровки. Этот механизм полагается на два взаимосвязанных ключа: общий ключ и частный ключ. Если Алисаи Боб хотят установить связь с использованием шифрования через общий ключ, обоим нужно получитьдва ключа: общий и частный (см.
рисунок 3). Для шифрования и расшифровки данных Алиса и Боб будутпользоваться разными ключами.êËÒÛÌÓÍ 3. òËÙÓ‚‡ÌËÂ Ò ÔÓÏÓ˘¸˛ Ó·˘Â„Ó Íβ˜‡Вот некоторые наиболее типичные цели использования алгоритмов общих ключей:●обеспечение конфиденциальности данных;●аутентификация отправителя;●безопасное получение общих ключей для совместного использования.Чтобы лучше понять, как достигается конфиденциальность данных и проводится аутентификация отправителя, пройдем по всему процессу шаг за шагом. Сначала и Алиса, и Боб должны создать свои пары общих/частных ключей. После создания таких пар Алиса и Боб должны обменяться своими общими ключами.На рисунке 4 показано, как шифрование с помощью общих ключей обеспечивает конфиденциальностьинформации.
Если Алиса хочет отправить Бобу конфиденциальные данные (другими словами, если онахочет, чтобы никто, кроме Боба, не смог их прочесть), она шифрует данные с помощью общего ключа Боба и отправляет Бобу данные, зашифрованные этим способом. Получив сообщение от Алисы, Боб расшифровывает его с помощью своего частного ключа. Так как никто, кроме Боба, не имеет этого частного ключа, данные, отправленные Алисой, может расшифровать только Боб. Таким образом поддерживается конфиденциальность данных.5êËÒÛÌÓÍ 4.
äÓÌÙˉÂ̈ˇθÌÓÒÚ¸ ‰‡ÌÌ˚ı, Á‡¯ËÙÓ‚‡ÌÌ˚ı Ò ÔÓÏÓ˘¸˛ Ó·˘Â„Ó Íβ˜‡На рисунке 5 показано, как шифрование с помощью общего ключа помогает проводить аутентификациюотправителя. Боб хочет быть уверен, что сообщение отправлено именно Алисой, а не человеком, которыйвыдает себя за нее. Поскольку общий ключ не является секретным, доступ к нему может получить ктоугодно. Но если Алиса зашифрует сообщение своим частным ключом, Боб должен расшифровать его спомощью общего ключа Алисы. Аутентификация происходит потому, что доступ к частному ключу Алисы имеет только она одна, и поэтому данные могли быть зашифрованы только ею.êËÒÛÌÓÍ 5.
ÄÛÚÂÌÚËÙË͇ˆËfl ÓÚÔ‡‚ËÚÂÎfl Ò ÔÓÏÓ˘¸˛ ¯ËÙÓ‚‡ÌËfl Ó·˘ËÏ Íβ˜ÓÏ6Важным аспектом асимметричного шифрования является то, что частный ключ должен храниться в тайне. Если частный ключ будет раскрыт, то человек, знающий этот ключ, сможет выступать от вашего имени, получать ваши сообщения и отправлять сообщения так, будто это делаете вы.Механизмы генерирования пар общих/частных ключей являются достаточно сложными, но в результате получаются пары очень больших случайных чисел, одно из которых становится общим ключом, а другое — частным.
Генерирование таких чисел требует больших процессорных мощностей, поскольку этичисла, а также их произведения должны отвечать строгим математическим критериям. Однако этот процесс генерирования абсолютно необходим для обеспечения уникальности каждой пары общих/частныхключей.
Алгоритмы шифрования с помощью общих ключей редко используются для поддержки конфиденциальности данных из-за ограничений производительности. Вместо этого их часто используют в приложениях, где аутентификация проводится с помощью цифровой подписи и управления ключами.Среди наиболее известных алгоритмов общих ключей можно назвать RSA (Ривест, Шамир, Адельман) иElGamal.ÅÂÁÓÔ‡ÒÌ˚ ı˝¯-ÙÛÌ͈ËËБезопасной хэш-функцией называется функция, которую легко рассчитать, но обратное восстановление которой требует непропорционально больших усилий. Входящеесообщение пропускается через математическую функцию (хэш-функцию), и в результате на выходе мы получаем некую последовательность битов. Эта последовательностьназывается «хэш» (или «результат обработки сообщения»).
(См. рисунок 6.) Этот процесс невозможно восстановить. Другими словами, имея выходные данные, невозможнополучить входные. Хэш-функцию можно сравнить с кофемолкой. Если сообщение —это кофейные зерна, а хэш на выходе — это размолотый кофе, то, имея такой размолотый кофе, вы не сможете восстановить кофейные зерна.Хэш-функция принимает сообщение любой длины и выдает на выходе хэш фиксированной длины. Обычные хэш-функции включают:алгоритм Message Digest 4 (MD4);алгоритм Message Digest 5 (MD5);● алгоритм безопасного хэша (Secure Hash Algorithm — SHA).●●êËÒÛÌÓÍ 6.ï˝¯-ÙÛÌ͈ËflèËÏÂÌÂÌËfl ÚÂıÌÓÎÓ„ËË ¯ËÙÓ‚‡ÌËflТехнология шифрования часто используется в приложениях, связанных с управлением ключами и аутентификацией. Эти приложения описаны ниже.Ä΄ÓËÚÏ ÑËÙÙË-ïÂÎÎχ̇Алгоритм Диффи-Хеллмана позволяетдвум сторонам, Алисе и Бобу, создать общий для них секретный ключ, известныйтолько им двоим, несмотря на то, чтосвязь между ними осуществляется по незащищенному каналу.
Затем этот секретный ключ используется для шифрованияданных с помощью алгоритма секретногоключа. На рисунке 7 показан пример использования алгоритма Диффи-Хеллмана в сочетании с алгоритмом DES для создания секретных ключей и последующего использования этих ключей для поддержки конфиденциальности данных.Два числа, p (простое число) и g (меньшее, чем p, но с некоторыми исключениями), используются совместно.
И Алиса,и Боб генерируют (каждый для себя)большое случайное число. Эти числа (ХАи ХВ) держатся в секрете. Далее используется алгоритм Диффи-Хеллмана. ИАлиса, и Боб проводят вычисления с помощью этого алгоритма и обмениваютсяих результатами. Окончательным результатом является общая величина Z. Этотключ Z используется как ключ DES дляшифрования и расшифровки данных. Человек, который знает величину p или g,не сможет легко рассчитать общую величину Z из-за трудностей с факторизациейочень больших простых чисел.ò‡„ 1: ÄÎËÒ‡ Ë ÅÓ· ‰Ó„Ó‚‡Ë‚‡˛ÚÒfl Ó Á̇˜ÂÌËflı p Ë gò‡„ 2: ÄÎËÒ‡ Ë ÅÓ· ‚˚˜ËÒÎfl˛Ú Á̇˜ÂÌËfl ìÄ Ë ìÇ, Ë Ó·ÏÂÌË‚‡˛ÚÒfl ÂÁÛθڇڇÏËò‡„ 3: ÄÎËÒ‡ Ë ÅÓ· ‚˚˜ËÒÎfl˛Ú ÒÂÍÂÚÌ˚È Íβ˜ ZВажно отметить, что на сегодня пока не создано средств для определения автора такого ключа, поэтому обмен сообщениями,зашифрованными этим способом, может êËÒÛÌÓÍ 7.
Ä΄ÓËÚÏ ÑËÙÙË-ïÂÎÎχ̇ Ò Íβ˜ÓÏ DESподвергаться хакерским атакам. АлгоритмДиффи-Хеллмана используется для поддержки конфиденциальности данных, но не используется для аутентификации. Аутентификация в данном случае достигается с помощью цифровой подписи.ñËÙÓ‚˚ ÔÓ‰ÔËÒËЦифровая подпись представляет собой зашифрованный хэш, который добавляется к документу.
Она может использоваться для аутентификации отправителя и целостности документа. Цифровые подписиможно создавать с помощью сочетания хэш-функций и криптографии общих ключей. На рисунке 8 показан пример создания цифровой подписи. СначалаАлиса и Боб должны договориться об алгоритмешифрования общим ключом (например, DigitalSignature Standard — DSS), создать пары общих/частных ключей и обменяться своими общими ключами.Им также нужно прийти к согласию о том, какуюхэш-функцию использовать для создания цифровыхподписей и их проверки.
Предположим, что выбраналгоритм MD5. Алиса берет оригинальный документи подает его на вход MD5, получая на выходе блокдлиной в 128 бит. Эти выходные данные называютсярезультатом обработки сообщения (хэшем документа). Алиса зашифровывает этот хэш с помощью своêËÒÛÌÓÍ 8. ëÓÁ‰‡ÌË ˆËÙÓ‚ÓÈ ÔÓ‰ÔËÒË7его частного ключа. Этот зашифрованный хэш является цифровой подписью, которая прибавляется ктексту оригинального документа.Сообщение, которое Алиса отправляет Бобу, будет состоять из документа как такового и цифровой подписи.
На рисунке 9показано, как происходит проверка цифровой подписи. На другом конце каналасвязи Боб получает сообщение и делит егона оригинальный документ и цифровуюподпись. Так как цифровая подпись былазашифрована частным ключом Алисы,Боб может провести расшифровку с помощью ее общего ключа. Теперь у Боба естьрасшифрованный хэш.