Jan 16, 2010 13:35
Шифрование. Ключи шифрования. Алгоритмы
Ключ шифрования
Это информация, как правило, секретная, используемая алгоритмом криптографии при шифровании либо же дешифровании зашифрованной информации; при проверке и постановке ЦП (цифровая подпись), вычисления аутентичных кодов (МАС).
Конечный результат шифрования, в случае использования одного и того же криптографического алгоритма, зависит от ключа. Современные алгоритмы криптографии разработаны таким образом, что утеря ключа приведёт к практически полной невозможности расшифровки информации.
Надёжность системы криптографии, в соответствии принципа Кeрхгоффса, определяется сокрытием ключей, но никак не сокрытием особенностей алгоритма Илии самого алгоритма.
Разновидность ключей
Симметричные ключи (секретные) - вид ключей, используемых в симметричных алгоритмах: шифрования либо выработка аутентичных кодов. Особенностью ассиметричных ключей является использование одного итого же ключа, как для прямого, так и для обратного криптографического преобразования. Плюс это или минус ключей - двойственно; стало быть, обеспечена высокая конфиденциальность информации, но в тоже время распространение ключей в много пользовательских системах является реальной угрозой.
Ассиметричные ключи - вид ключей, используемых в ассиметричных алгоритмах: ЭЦП (электронно-цифровая подпись), шифрование. Ассиметричные ключи состоят из двух ключей и являются так называемой «ключевой парой»:
Закрытый ключ (private key) - приватный ключ, известный лишь его владельцу. Сохранность пользователем ключа даёт гарантии на практическую невозможность подделки цифровой подписи или документа.
Открытий ключ (public key) - публичный ключ используется при проверке подлинности документа и цифровой подписи, а так в качестве средства предупреждения со стороны заверителя. Однако сведения об открытом ключе не дают возможности определения закрытого ключа.
Так или иначе «ключевая пара» обладает примечательной особенностью: исходя из сведений секретного ключа, вполне возможно узнать об открытом ключе, в то время как по открытому ключу невозможно узнать о секретном ключе.
ЭЦП обычно на секретном ключе пользователя используется, а проверяется открытым ключом. Так не составит труда проверить правильно ли составлена цифровая подпись. Обеспечивается не только целостность информации, но и аутентичность ассиметричными алгоритмами. Однако при обратном шифровании, информация шифруется при помощи открытого ключа, когда как расшифровывается при помощи секретного. Так, расшифровать информацию может только лишь её адресат и отправитель, но не более.
Применение ассиметричных алгоритмов решает проблему распространения в сети пользовательских ключей, но открывает дверь перед новыми проблемами: достоверны ли полученные ключи. Подобные проблемы решаются в рамках инфрастуктуры - PKI - открытых ключей.
Сессионные (сеансовые) ключи - вид ключей, получаемые между двумя пользователями, как правило, для защиты канал связи. Сеансовым ключом является известный обеим сторонам секрет - информация, выработанная на основании секретного ключа и открытого ключа одной и второй стороны соответственно. Так, алгоритм Диффи - Хеллмана является одним из представителей сеансовых ключей.
Подключи - это информация ключевая, создаваемая в процессе работы на основе ключа алгоритма. Подключи, как правило, создаются на основе так называемой процедуры развёртывания ключа.
Ключ и его длина
AES, CAST5, IDEA, Blowfish, Twofish и т.д. современные симметрические алгоритмы, основной характеристикой стойкости которых является длина ключа. Так, считается стойким процесс шифрования при использовании ключа длинной 128 бит, когда как для расшифровки информации без ключа ну или в случае его утери потребуются годы работы мощных компьютерных систем.
Ассиметричные алгоритмы основаны на проблемах теории чисел и в силу своих особенностей длина ключа используется в 1024 бит. Однако ассиметричные алгоритмы, основанные на теории эллиптических кривых, имеют длину ключа в 191 бит и более.
Для асимметричных алгоритмов, основанных на использовании теории эллиптических кривых (ECDSA, ГОСТ Р 34.10-2001, ДСТУ 4145-2002), минимальной надёжной длиной ключа считается 163 бит, но рекомендуются длины от 191 бит и выше.
К сведению, объём ключа измеряется в битах.
Алгоритм SEAL
SEAL (Software Encryption ALgorithm) представляет собой приспособленный для программной реализации потоковый шифр, разработанный Филом Рогэвэем и Доном Копперсмитом из компании IBM. Алгоритм оптимизирован для 32-разрядных процессоров. Для эффективной работы ему требуются 8 32-разрядных регистров и кэш объемом несколько килобайт.
Одним из замечательных свойств этого шифра является то, что он не является потоковым шифром в традиционном смысле, а представляет собой семейство псевдослучайных функций. 160-битовый ключ к и 32-битовое значение п (индекс) шифр преобразует в Z-битовую строку к{п). L может принимать любое значение, меньшее 64 килобайт. Такой шифр мы будем обозначать SEAL(A:, п, L). Предполагается, что если к выбирается случайно, то к(п) будет вычислительно неотличима от случайной L-битовой функции от п.
На практике это дает еще одно преимущество. Большинство шифров генерирует битовые последовательности в одном направлении. Зная ключ к и позицию /, определить значение /-го бита ключевой последовательности можно только вычислив все биты до /-го один за другим. В случае семейства псевдослучайных функций мы получаем простой доступ к любому элементу ключевой последовательности. Это оказывается весьма полезным.
Предположим, что необходимо зашифровать содержимое жесткого диска компьютера по 512-байтным секторам. Тогда сектор с номером п будет шифроваться с помощью ключевой последовательности Нп). При этом легко может быть обеспечен доступ к произвольному сектору диска.
Данный шифр также облегчает проблему синхронизации, свойственную традиционным потоковым шифрам. Сообщение с номером п будет шифроваться с ключевой последовательностью Нп), и п будет передаваться вместе с сообщением. Получателю не нужно будет хранить состояние генератора ключевой последовательности и беспокоиться о потерянных сообщениях и их влиянии на процесс расшифрования.
Алгоритм SEAL предусматривает использование трех зависящих от ключа таблиц: R, S, и Т. Эти таблицы заполняются на предварительном этапе при помощи алгоритма, основанного на SHA, и зависят только от ключа.
Шифр SEAL требует пять элементарных машинных операции в пересчете на один байт текста при шифровании и расшифровании. Таким образом, он является одним из самых быстрых программно реализуемых алгоритмов.
Advanced Encryption Standard
Advanced Encryption Standard (AES), под другим назваием - Rijndael - симметричный алгоритм блочного (размер блока 128 бит) шифрования ключ (длина ключа шифрования 128/192/256 бит), в результате конкурса среди 15 кандидатур AES был принят стандартом шифрования правительством США. Этот алгоритм хорошо проанализирован и признан криптостойким. Сейчас широко используется для зщиты данных. 26 ноября 2001 года алгоритм AES был сертифицирован "Национальным институтом технологий" США.
text hash crack,
Text Записи