Скачиваний:
276
Добавлен:
02.05.2014
Размер:
511.49 Кб
Скачать

Общие сведения о криптографии

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

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

Криптография используется для достижения следующих целей:

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

  • Целостность данных: защита данных от несанкционированного изменения.

  • Проверка подлинности: проверка того, что данные исходят действительно от конкретного лица.

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

Криптографический примитив

Использование

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

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

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

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

Создание криптографической подписи (ЭЦП)

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

Криптографическое хеширование

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

Определение схемы шифрования.

Схема шифрования – это совокупность трёх процессов (алгоритмов):

1) генерации (создания) ключа;

2) зашифрования;

3) расшифрования.

Алгоритм обмена ключами Диффи-Хеллмана.

Уитфилд Диффи (Whitfield Diffie) и Мартин Хеллман (Martin Hellman) разработали свою систему шифрования с открытым ключом в 1976 г. Система Диффи-Хеллмана (Diffie-Hellman) разрабатывалась для решения проблемы распространения ключей при использовании систем шифрования с секретными ключами. Алгоритм Диффи-Хеллмана нельзя использовать для шифрования или дешифрования информации.

Алгоритм Диффи-Хеллмана работает следующим образом.

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

  2. P1 и P2 принимают к использованию два больших целых числа a и b, причем 1 < a < b.

  3. P1 выбирает случайное число i и вычисляет I = ai mod b. P1 передает I абоненту P2.

  4. P2 выбирает случайное число j и вычисляет J = aj mod b. P2 передает J абоненту P1.

  5. P1 вычисляет k1 = Ji mod b.

  6. P2 вычисляет k2 = Ij mod b.

  7. Имеем k1 = k2 = ai*j mod b, следовательно, k1 и k2 являются секретными ключами, предназначенными для использования при передаче других данных.

Алгоритм RSA.

В 1978 г. Рон Ривест, Ади Шамир и Лен Адельман разработали алгоритм шифрования Rivest-Shamir-Adleman (RSA) с открытым ключом. В отличие от алгоритма Диффи-Хеллмана RSA может использоваться для шифрования и дешифрования.

Шифрованный текст = (открытый текст)e mod n

Открытый текст = (шифрованный текст)d mod n

Секретный ключ = {d, n}

Открытый ключ = {e, n}

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

Шифрованный текст = (открытый текст)d mod n

Открытый текст = (шифрованный текст)e mod n

Секретный ключ = {d, n}

Открытый ключ = {e, n}

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

Генерация ключей RSA.

Чтобы сгенерировать ключевую пару RSA, выполняются следующие шаги:

  1. Выбираются два простых числа p и q и содержатся в секрете.

  2. Вычисляется n = p*q.

  3. Вычисляется ф(n) = (p - 1)(q - 1).

  4. Выбирается такое e, чтобы оно было взаимно простым по отношению к ф(n).

  5. Определяется такое d, чтобы (d)(e) = 1 mod ф(n) и d < ф(n).