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

Страницы работы

Содержание работы

Лабораторная работа  

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

Вводная информация

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

            Y = f(X)          - вычисляется легко

            X = f-1(Y)        - практически невозможно

Принципы шифрования с открытым ключом

  1. Криптографическая система генерирует пару взаимосвязанных ключей: открытый ключ для шифрования и секретный – для дешифрации.
  2. Как правило, любой из этих связанных ключей может служить для шифрования, и тогда другой применяется для дешифрации.
  3. По открытому ключу невозможно восстановить второй секретный ключ.

Процесс обмена сообщениями в системах с открытым ключом выглядит так:

  1. Каждый пользователь в сети генерирует пару ключей: один для шифрования, другой для дешифрации.
  2. Каждый пользователь публикует свой открытый ключ, помещая его в общедоступном файле. Это открытый ключ. Второй ключ остается в личном пользовании и является секретным.
  3. Если пользователь А хочет послать сообщение пользователю В, он шифрует сообщение, используя открытый ключ пользователя В.
  4. Когда пользователь В получает сообщение, он дешифрует его с помощью своего секретного ключа. Никто другой не сможет расшифровать сообщение, не имея второго секретного ключа.

Система PGP

Пример системы, использующей шифрование с открытым ключом –  система PGP. PGP (Pretty Good Privacy – вполне надежная секретность) - это система аутентификации и конфиденциальности, которая широко используется для защиты электронной почты и  хранения файлов. Практически она является результатом работы одного человека – Фила Циммермана (Zimmermann). Эта система - свободно распространяемая, она доступна через Интернет. Однако существует и недорогая коммерческая версия, обеспечивающая техническую поддержку.

            Достоинства системы PGP:

  1. Система доступна практически на всех существующих аппаратных платформах (DOS/Windows, UNIX, Macintosh). Имеется коммерческая версия, обеспечивающая техническую поддержку.
  2. Система основана на алгоритмах, которые считаются лучшими криптографическими алгоритмами и исключительно надежны.
  3. Система разработана частным лицом, и поэтому неподконтрольна никакой правительственной организации

Функции PGP

Сервис PGP включает в себя 5 функций:

  • Аутентификация. Обеспечивается с помощью создаваемой цифровой подписи, которая шифруется с помощью личного ключа отправителя и включается в сообщение. Получатель использует открытый  ключ отправителя для расшифровки подписи. Затем он генерирует новую подпись сообщения и сравнивает с той, которая дешифрована. Если подписи совпадают, сообщение считается подлинным.
  • Конфиденциальность. Обеспечивается шифрованием сообщения с помощью одноразового сеансового ключа, сгенерированного отправителем.  Сеансовый ключ – это случайное 128-битовое число. Сеансовый ключ шифруется с помощью открытого ключа получателя и включается в сообщение.
  • Сжатие. Сообщение можно сжать с помощью алгоритма ZIP. Шифрование происходит после сжатия, чтобы усилить криптографическую защиту.
  • Совместимость на уровне электронной почты. Чтобы обеспечить возможность использования системы всеми приложениями электронной почты, шифрованное сообщение можно преобразовать в поток символов ASCII. При этом используется схема конвертирования radix-64, в которой каждая группа из трех байтов двоичных данных преобразуется в 4 символа ASCII. Это увеличивает длину сообщения на 33%, но это можно компенсировать с помощью сжатия текста.
  • Сегментация. Чтобы удовлетворить ограничениям максимального размера сообщений, PGP выполняет сегментацию и обратную сборку сообщения. Сегментация выполняется после всех других операций.

Функции хэширования

Функция хэширования, или хэш-код, это один из вариантов кода аутентичности сообщения. Функция хэширования получает на вход сообщение М произвольной длины, а на выход выдает хэш-код Н(М) фиксированного размера. Хэш-код является функцией всех битов сообщения, и обеспечивает возможность контроля ошибок: изменение любого числа битов в сообщении приводит к изменению хэш-кода.

            На применении функций хэширования основаны цифровые подписи.

Задание к лабораторной работе

  1. Создание ключей. Запустить программу PGPtools (Start/All Programs/PGPtools). Сгенерировать новую пару ключей (открытый и закрытый) с помощью Мастера генерации ключей (кнопка PGPkeys, в окне PGPkeys кнопка Generate new keypair). Для этого необходимо ввести имя пользователя и адрес e-mail (не обязательно реальные). Затем выбирается длина ключа и используемый алгоритм (DSS или RSA). Далее можно задать дату, до которой ключ остается действительным или указать, что ключ будет действительным всегда. Затем этого необходимо задать и подтвердить (повторно ввести) пароль. После всего этого будет сгенерирована пара ключей (приватный и публичный, или закрытый и открытый), которые будут добавлены в соответствующие файлы ключей (public keyring и secret keyring).
  2. Экспорт открытого ключа. Нужно сделать экспорт открытого ключа двумя способами – с помощью обычного текстового файла, и с помощью специального файла. Чтобы сохранить открытый ключ из созданной пары ключей в текстовом файле, нужно отметить мышью созданный ключ и скопировать его в буфер (меню Edit/ Copy). Затем перейти в текстовый файл и вставить содержимое буфера. Файл нужно переслать другой бригаде студентов, чтобы вам могли зашифровать сообщение вашим открытым ключом.

Чтобы сделать экспорт созданного открытого ключа с помощью специального файла, нужно воспользоваться командой Export в меню окна со списком ключей (Keys/Export).  Полученный файл с расширением asc переслать другой бригаде студентов.

  1. Добавление чужого открытого ключа в свою базу ключей. Нужно внести открытый ключ, созданный любой другой бригадой, в свою базу открытых ключей. Для этого можно воспользоваться либо текстовым файлом с открытым ключом, либо специальным файлом ключей с расширением asc. Импорт открытого ключа из текстового файла, созданного другой бригадой, выполняется с помощью буфера. Для этого нужно открыть текстовый файл, выделить весь блок текста, относящийся к ключу, и скопировать его в буфер клавиатуры. Затем перейти в список ключей и произвести вставку из буфера. Импорт открытого ключа из специального файла выполняется с помощью команды Import в меню окна PGPkeys.
  2. Шифрование сообщения. Создать текстовый файл с любым открытым текстом. Зашифровать его с помощью PGP, используя внесенный в базу открытый ключ другой бригады. Для этого нужно щелкнуть правой кнопкой мыши на названии файла, и в пункте PGP выбрать Encrypt. Полученный файл с расширением pgp переслать владельцам ключа через сервер.
  3. Расшифровка сообщения. Нужно расшифровать текстовый файл, посланный вам другой бригадой и зашифрованный с помощью вашего открытого ключа, используя свой секретный ключ. Для этого нужно щелкнуть правой кнопкой мыши на названии файла, и в пункте PGP выбрать Decrypt (или на панели PGPtools воспользоваться кнопкой Decrypt). После этого необходимо ввести пароль, который был указан при генерации ключа.
  4. Создание цифровой подписи и ее проверка. Нужно создать цифровую подпись в открытом текстовом файле и переслать этот файл другой бригаде. С помощью открытого ключа другой бригады нужно проверить подпись в присланном вам файле. Подписывание файла осуществляется секретным ключом пользователя, а проверка подписи – публичным.
  5. Показать преподавателю результаты работы: созданные файлы с открытыми ключами (два) для экспорта, свою пару ключей в базе данных и открытые ключи, импортированные от других бригад (как минимум один), зашифрованное и расшифрованное сообщение, сообщение с цифровой подписью и процедуру проверки цифровой подписи другой бригады.

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
45 Kb
Скачали:
0