Криптографический ключ

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

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

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

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

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

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

10 вопросов и ответов по криптографии

Алексей Раевский

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

  1. Что такое криптография?

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

  2. Что такое алгоритм шифрования?

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

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

  3. Как с помощью шифрования защищаются данные?

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

  4. Какой алгоритм шифрования самый стойкий?

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

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

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

  5. Что такое ключ шифрования?

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

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

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

  6. Какие бывают алгоритмы шифрования?

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

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

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

  Примеры симметричных алгоритмов шифрования — DES, RC4, RC5, AES, CAST.

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

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

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

  Примеры асимметричных алгоритмов шифрования — RSA, El-Gamal.

  7. Как взламывают алгоритмы шифрования?

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

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

  Единственный метод, который уместно упомянуть — метод прямого перебора всех возможных значений ключа шифрования (также называемый методом «грубой силы», или brute force). Суть данного метода состоит в переборе всех возможных значений ключа шифрования до тех пор, пока не будет подобран нужный ключ.

  8. Какова должна быть длина ключа шифрования?

  На сегодняшний день для симметричных алгоритмов шифрования достаточной длиной ключа шифрования считается 128 бит (16 байт). Для полного перебора всех возможных ключей длиной 128 бит (атака brute force) за один год необходимо наличие 4,2х1022 процессоров производительностью 256 миллионов операций шифрования в секунду. Стоимость такого количества процессоров составляет 3,5х1024 долларов США (по данным Bruce Schneier, Applied Cryptography).

  Существует международный проект distributed.net, целью которого является объединение пользователей Интернет для создания виртуального распределенного суперкомпьютера, занимающегося перебором ключей шифрования. Последний проект по взлому ключа 64 бит был завершен в течение 1757 дней, в нем приняло участие более трехсот тысяч пользователей, а вычислительная мощность всех компьютеров проекта была эквивалентна почти 50.000 процессорам AMD Athlon XP с тактовой частотой 2 ГГц.

  При этом следует учитывать, что увеличение длины ключа шифрования на один бит увеличивает количество значений ключа, а, следовательно, и время перебора, в два раза. То есть, исходя из вышеприведенных цифр, за время 1757 * 2 дней можно взломать не 128-битный ключ, как может показаться на первый взгляд, а всего лишь 65-битный.

  9. Я слышал о ключах шифрования 1024 и даже 2048 бит, а вы говорите, что 128 бит вполне достаточно. Что это значит?

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

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

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

  10. Может ли ФСБ (ФАПСИ, АНБ, ЦРУ) прочитать мои зашифрованные данные, используя свои суперкомпьютеры и супертехнологии?

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

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

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

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

Источник: SecurIT   

^ вернуться в начало ^

  1. Начните с байтов открытого ключа (байта длины 64)
  2. Из этого открытого ключа возьмите хэш Keccak-256, который повсеместно используется Ethereum (убедитесь, что вы правильно это понимаете, поскольку в конечном итоге стандартизованный хэш SHA3-256 отличается). Теперь вы должны иметь байтов длиной 32.
  3. Отбросьте первые 12 байтов. Теперь у вас должна быть байтовая длина длиной 20, адрес Ethereum, связанный с вашим открытым ключом.

Обновление: Ой! Я вижу, что вы хотите его от закрытого ключа, а не от открытого ключа. Это сложнее. Вы должны сначала вывести открытый ключ из секретного ключа, который лучше всего с помощью библиотеки криптоконтента EC. Я могу показать вам пример кода в Scala, но математика EC — это в основном черный ящик для меня. Во-первых, интерпретировать 256-битный закрытый ключ как целое число без знака.

Глоссарий по информационной безопасности

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

Steve Waldman

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


skaht

Я очень смущен, в отношении ETHEREUM: БЕЗОПАСНЫЙ ДЕЦЕНТРАЛИЗОВАННЫЙ ОБОБЩЕННЫЙ ОПИСАНИЕ СДЕЛКИ.Я могу отформатировать как текст пишущей машинки, например, хэш-функция Keccak-256 (согласно выигрышной записи на конкурс SHA-3) обозначается KEC (и обычно упоминается как простой Кеччак). FIPS202_SHA3_256 — это Keccak (1088, 512, input, inputByteLen, 0x06, output, 32). Каковы параметры Keccak для Keccak-256?



skaht

PerВместо адресов, являющихся хешем RIPEMD160 хэша SHA256 открытого ключа с префиксом 04, адреса — это просто последние 20 байтов хэша SHA3 открытого ключа.


Steve Waldman

Итак, это уродливо. Но стратегия дополнения Keccak изменилась, поскольку функция была проверена в процессе стандартизации SHA3. Соответствующее изменение, я думаю, происходит в версии 3.0 здесь , см. Особенно padding.h и padding.cpp .

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

Сейчас почти невозможно найти VPN-шифрование с использованием ключа длиной менее 128 бит и все сложнее найти 256-битное шифрование в предлагаемых OpenVPN-решениях, ключи которых бывают даже 2048 бит. Но что означают эти цифры на практике, 256-битное шифрование действительно более безопасное, чем 128-битное?

Краткий ответ таков: при практическом применении – нет. Это правда, что взлом 256-битного ключа потребует в 2128 больше вычислительной мощности, чем взлом 128-битного ключа. Это означает, что потребуется 3.4х10^38 операций (количество комбинаций в 128-битном ключе) – подвиг для существующих компьютеров и даже в ближайшем будущем. Если бы мы применили самый быстрый суперкомпьютер (по данным 2011 года его скорость вычислений 10.51 петафлопс), нам потребовалось бы 1.02х10^18 (около 1 миллиарда) лет, чтобы взломать 128-битный AES-ключ путем перебора.

Так как на практике 128-битный шифр не может быть взломан путем перебора, было бы правильно говорить, что ключа такой длины более чем достаточно для большинства применений. Только настоящие параноики (например, чиновники в правительстве, имеющие дело со сверхсекретными документами, которые должны оставаться в тайне в течение следующих 100 или более лет) могут использовать 256-битное шифрование (правительство США, например, использует сертифицированный NIST 256-битный AES-шифр).

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

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

Криптографический ключ

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

Оглавление

  • 1. Введение
    • 1.1. Что такое бит?
    • 1.2. Что такое криптографический ключ?
    • 1.3. Что такое полный перебор?
    • 1.4. Является ли полный перебор единственно возможным методом криптоанализа?
    • 1.5. 128-битный ключ в два раза устойчивее к взлому, чем 64-битный?
    • 1.6. PGP должно быть очень устойчив, так как использует ключи 1024 бита.
  • 2. Текущее положение дел
  • 2.1. Какова максимальная длина ключа для симметричных криптосистем, которая поддается программному взлому методом полного перебора?
  • 2.2. То же, с использованием специальной аппаратуры?
  • 2.3. А для несимметричных криптосистем?
  • 2.4. Что относительно "кофейника" Шамира?

 3. То, что будет возможным в будущем

  • 3.1. Что такое закон Мура?
  • 3.2. Какова предполагаемая стоимость полного перебора с использованием специализированного оборудования?
  • 3.3. А с использованием квантовых компьютеров?

 4. Различные слухи

  • 4.1. NSA/DST/другие могут ломать ключи до 128 бит.
  • 4.2. NSA/DST/другие обладают квантовыми компьютерами.
  • 4.3. NSA/DST/другие достигли методов криптоанализа, недоступных другим.
  • 4.4. Я работаю на NSA/DST/других и поэтому пытаюсь убедить общественность, что 128-битное шифрование надежно.

1. Введение

1.1. Что такое бит?

Бит является фундаментальной единицей информации. Он может принимать значения 0 или 1. В течение сорока последних лет компьютеры работают с бинарными данными, то есть с наборами битов (а не с цифрами от 0 до 9, как это принято у людей; можно сказать, что компьютеры имеют только два пальца). Биты позволяют кодировать целые числа, символы, и т.д.. Вся информация, проходящая через компьютер, превращается в биты.

8 бит образуют байт; это дает 256 комбинаций и позволяет кодировать числа от 0 до 255 или символы (включая разницу между прописными и строчными буквами, символы с надстрочными знаками и другие).

1024 байта образуют один килобайт (кБ). 1024 используется вместо 1000 так как 1024 является степенью числа 2, то есть "круглым" числом, если работать по основанию 2. 1024 килобайта образуют мегабайт (МБ), или 1048576 байт. 1024 мегабайта образуют гигабайт (ГБ), или 1073741824 байта. 1024 ГБ образуют терабайт (ТБ). Дальнейшее умножение малоупотребительно, т.к. дорогостояще со всех точек зрения. Типичная емкость жестких дисков широко распространенных в настоящее время компьютеров составляет десять гигабайт.

Ключ (криптография)

Развитая сеть может пропускать десять мегабайт в секунду между двумя машинами.

1.2. Что такое криптографический ключ?

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

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

Ключ, таким образом, является концентрацией секрета, этот набор битов является "эссенцией" конфиденциальности.

1.3. Что такое полный перебор?

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

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

С точки зрения статистики, надо перебрать примерно половину возможных ключей, прежде чем найдется правильный. Если длина ключа составляет 56 битов, это означает, что в среднем необходимо провести 2^55 итераций, что составит 36028797018963968.

1.4. Является ли полный перебор единственно возможным методом криптоанализа?

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

Кроме того, существуют криптосистемы (в частности, системы асимметричные, называемые еще "системами с открытым ключом"), для которых все сочетания битов не образуют правильного ключа. Типичный пример — RSA, где ключ представлен большим числом, полученным из двух больших простых чисел. Совокупность наборов из 1024 бит, которые являются двоичной записью этих чисел, гораздо меньше 2^1024. Полный перебор абсурден в этом случае.

1.5. 128-битный ключ в два раза устойчивее к взлому, чем 64-битный?

НЕТ! Это распространенная ошибка. Каждый дополнительный бит удваивает количество возможных ключей и затраты на полный перебор. Ключ длиной 128 бит является в 18446744073709551616 раз более сложным для подбора, по сравнению с ключом длиной 64 бита (который уже не назовешь совсем легким).

1.6. PGP должно быть очень устойчив, так как использует ключи 1024 бита.

Стоп! Давайте разберемся! "1024 бит" в PGP — это ключ RSA или DSS, то есть ключ асимметричного алгоритма. Атака методом полного перебора не самый лучший вариант в этом случае.

Кроме того, асимметричные алгоритмы относительно медленны, и "внутри" PGP использует симметричный алгоритм (исторически IDEA, затем CAST) размер ключа которого составляет 128 бит.

2. Текущее положение дел

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

Известно, что два ключа по 56 бит были подобраны полным перебором на обычных компьютерах типа PC. Специализированная машина (построенная EFF) помогла для второго ключа, выполнив приблизительно треть общего объема вычислений.

Ключи были для алгоритма DES. Качественный ПК или рабочая станция могут перебирать с максимальной скоростью нескольких миллионов ключей в секунду. Если принять среднюю скорость один миллион ключей в секунду на машину, то легко видеть, что для подбора ключа 10000 машин должны в среднем затратить 42 дня.

Полный перебор ключа длиной 64 бита для RC5 (для которого сложность полного перебора несколько выше, чем для DES) в настоящее время продолжается, и будет длиться, по крайней мере, еще нескольких лет. Напоминаем, что подбор ключа размером 64 бита, является в 256 раз более трудоемким, чем подбор ключа длиной 56 бит.

2.2. То же, с использованием специальной аппаратуры?

Американская группа EFF, инвестировала 250000$ в создание специализированной машины под названием "Deep crack" ("глубокий взлом"), которая в состоянии перебрать все ключи алгоритма DES приблизительно за три дня. В ней использованы специализированные процессоры, которые невозможно применить для целей, отличных от взлома DES (в частности, они ничего "не знают" о RC5).

Все остальные машины того же рода — из области слухов. DES используется уже более 20 лет, и можно предположить, что, вероятно, машине EFF предшествовали другие прототипы, разрабатываемые секретными службами. В любом случае, скоро уже 15 лет периодически упоминаются принципы построения такой машины.

2.3. А для несимметричных криптосистем?

В принципе, существуют две математические задачи, используемые в асимметричных шифрах: факторизация и дискретное логарифмирование. RSA использует первую, DSS вторую. Другие упоминаемые задачи (вариации двух предыдущих, использование эллиптических кривых, задача об укладке ранца, минимизация сети (задача коммивояжера), обратное распознавание (permuted perceptrons problem — см. примечания) относительно редко используются в настоящее время.

Рекорд факторизации датируется 22-ым августа 1999: число размером 155 десятичных цифр (512 бит) было факторизовано за шесть месяцев вычислений на парке приблизительно из 600 машин, некоторые из которых могут быть квалифицированны как "быки" (в частности Cray с 2 ГБ памяти). Примененные алгоритмы гораздо более сложны, чем полный перебор, и требуют большого количества оперативной памяти с хорошей скоростью доступа.

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

2.4. Что относительно "кофейника" Шамира?

Представленный на Eurocrypt'99 в Праге (в начале мая 1999), этот аппарат ускоряет физическими средствами исследование гладких чисел (то есть полученных произведением только маленьких простых чисел), которые получают обычно методом решета. Эти числа являются основой нескольких алгоритмов факторизации и решений задачи дискретного логарифмирования.

Сам аппарат еще не построен, описаны только его принципы. Существуют технические проблемы для реализации прототипа (Arjen Lenstra высказал некоторые возражения, с которыми Adi Shamir согласился).

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

Отмечено, что решето заняло приблизительно 60% времени для рекорда в 512 бит.


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

Симметричные алгоритмы
Алгоритмы шифрования делятся на два больших класса: симметричные (AES, ГОСТ, Blowfish, CAST, DES) и асимметричные (RSA, El-Gamal). Симметричные алгоритмы шифрования используют один и тот же ключ для зашифровывания информации и для ее расшифровывания, а асимметричные алгоритмы используют два ключа — один для зашифровывания, другой для расшифровывания.


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


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

Обычно в Программах для шифрования (WinRAR, Rohos и т.д.) ключ создается из пароля , который задает пользователь.

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


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


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

Теоретическая и практическая стойкость.
В 1949 г. К.Э. Шеннон опубликовал статью «Теория связи в секретных системах». Шеннон рассматривал стойкость криптографических систем как Практическую и Теоритическую. Вывод по теоритической стойкости до сих пор остается пессимистическим: длина ключа должна быть равна длине открытого текста.
Поэтому Шеннон также рассмотрел вопрос и по практической стойкости криптографических систем. Надежна ли система, если злоумышленник обладает ограниченным временем и вычислительными ресурсами для анализа перехваченных сообщений ?


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


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

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


На практике это означает, что злоумышленник должен :

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

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


Алгоритмы шифрования
AES (Rijndael). В настоящее время является федеральным стандартом шифрования США. Утвержден министерством торговли в качестве стандарта 4 декабря 2001 года. Решение вступило в силу с момента опубликования в федеральном реестре (06.12.01). В качестве стандарта принят вариант шифра только с размером блока 128 бит.

Время/место разработки 1997 год, Бельгия
Авторы Йоан Дамен (Joan Daemen), Винсент Раймен (Vincent Rijnmen)
Архитектура «Квадрат»
Размер ключа, бит 128, 192, 256
Патент Не запатентован

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

Время/место разработки Предположительно вторая половина 70-х. Разработан в бывшем 8-м Главном Управлении КГБ СССР или в одном из секретных НИИ в его системе
Авторы Не известны
Архитектура Классическая сбалансированная сеть Файстеля.
Размер ключа, бит 256
Патент Не запатентован

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

Время/место разработки 1993 год
Авторы Брюс Шнайер (Bruce Schneier)
Архитектура Сбалансированная сеть Файстеля.
Размер ключа, бит 32 — 448
Патент Не запатентован

DES Федеральный стандарт шифрования США в 1977-2001 годах. В качестве федерального стандарта США принят в 1977 году. В декабре 2001 года утратил свой статус в связи с введением в действие нового стандарта.

Время/место разработки Создан в 1972-1975 годы в исследовательской лаборатории корпорации IBM
Авторы Группа под руководством д-ра. У. Тачмена
Архитектура Классическая сбалансированная сеть Файстеля с начальной и конечной битовыми перестановками общего вида.
Размер ключа, бит 56
Патент Не запатентован

CAST В некотором смысле аналог DES.

Авторы К. Адамс (C. Adams) и С. Таварес (S. Tavares)
Размер ключа, бит 128, 256
Патент Не запатентован

Ссылки:

www.codenet.ru/progr/alg/enc
Алгоритмы шифрования, Обзор, информация, сравнение.

http://www.enlight.ru/crypto
Материалы по асимметричному шифрованию, цифровой подписи и другим «современным» криптографическим системам.


Александр Великанов,
Ольга Чебан,
Tesline-Service SRL.

Дата: 1 Марта 2004

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *