Основы криптографии
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
я К, и посылает К шифрованный пакет.
Подпись документа с помощью криптографии с открытыми ключами
Существуют алгоритмы с открытыми ключами, которые можно использовать для цифровых подписей. В некоторых алгоритмах - примером является RSA - для шифрования может быть использован или открытый, или закрытый ключ. Зашифруйте документ своим закрытым ключом, и вы получите надежную цифровую подпись. В других случаях - примером является DSA - для цифровых подписей используется отдельный алгоритм, который невозможно использовать для шифрования . Эта идея впервые была изобретена Диффи и Хеллманом и в дальнейшем была расширена и углублена в других работах. Основной протокол прост:
- A шифрует документ своим закрытым ключом, таким образом подписывая его.
- A посылает подписанный документ B.
- B расшифровывает документ, используя открытый ключ A, таким образом проверяя подпись.
Этот протокол гораздо лучше предыдущего. С не нужен ни для подписи документов, ни для ее проверки. (Он нужен для подтверждения, что открытый ключ принадлежит именно А.) С не нужен сторонам даже для разрешения споров: Если B не смог осуществить этап (3), то он знает, что подпись неправильна. Такая подпись соответствует всем требованиям:
Эта подпись достоверна. Когда B расшифровывает сообщение с помощью открытого ключа A, он знает что она подписала это сообщение.
Эта подпись неподдельна. Только A знает свой закрытый ключ.
Эту подпись нельзя использовать повторно. Подпись является функцией документа и не может быть перенесена на другой документ.
Подписанный документ нельзя изменить. После любого изменения документа подпись не сможет больше подтверждаться открытым ключом A.
От подписи невозможно отказаться. B не требуется помощь A при проверке его подписи.
Подпись документа и метки времени
На самом деле, при определенных условиях B сможет смошенничать. Он может повторно использовать документ и подпись совместно. Это не имеет значения, если A подписал контракт (одной копией подписанного контракта больше, одной меньше-пустяки, дело обычное), но что если A поставила цифровую подпись под чеком?
Предположим, что A послал B подписанный чек на $100. B отнеiек в банк, который проверил подпись и перевел деньги с одного iета на другой. B, выступающий в роли жулика, сохранил копию электронного чека. На следующей неделе он снова отнес его в этот или другой банк. Банк подтвердил подпись и перевел деньги с одного iета на другой. Если A не проверяет свою чековую книжку, B сможет проделывать это годами.
Поэтому в цифровые подписи часто включают метки времени. Дата и время подписания документа добавляются к документу и подписываются вместе со всем содержанием сообщения . Банк сохраняет эту метку времени в базе данных. Теперь, если B попытается получить наличные по чеку A во второй раз, банк проверит метку времени по своей базе данных. Так как банк уже оплатил чек A с той же меткой времени, то будет вызвана охранатАж.
Стоп, стоп, стоптАж. Кажется я немного перебрал и перепутал порядок вещейтАж Протоколы это хорошо, но стоило бы разобраться с терминологией, или, как принято говорить "Договоримся о терминах"
ПродолжаютАж
Отправитель, получатель и злоумышленник
Предположим, что отправитель хочет послать сообщение получателю. Более того, этот отправитель хочет послать свое сообщение безопасно: он хочет быть уверен, что перехвативший это сообщение (злоумышленник) не сможет его прочесть.
Сообщения и шифрование
Само сообщение называется открытым текстом . Изменение вида сообщения так, чтобы спрятать его суть называется шифрованием. Шифрованное сообщение называется шифротекстом (шифрограммой). Процесс преобразования шифротекста в открытый текст называется дешифрированием.
Или, изображая графически
Обозначим открытый текст как М (от message, сообщение). Это может быть поток битов, текстовый файл, битовое изображение, оцифрованный звук, цифровое видеоизображение... да что угодно. Для компьютера M - это просто двоичные данные. Открытый текст может быть создан для хранения или передачи. В любом случае, M - это сообщение, которое должно быть зашифровано.
Обозначим шифротекст как С (от ciphertexеt). Это тоже двоичные данные, иногда того же размера, что и M, иногда больше. (Если шифрование сопровождается сжатием, С может быть меньше чем M. Однако, само шифрование не обеспечивает сжатие информации.) Функция шифрования E действует на M, создавая С. Также обозначим процесс дешифрования через D (decrypt, дешифрование).Или, в математической записи:
E(M) = С
В обратном процессе функция дешифрирования D действует на С, восстанавливая M:
D(C) = M
Поскольку смыслом шифрования и последующего дешифрирования сообщения является восстановление пеpвоначального открытого текста, должно выполняться следующее равенство :
D(E(M)) = M
Кроме обеспечения конфиденциальности криптография часто используется для других функций Проверка подлинности. Получатель сообщения может проверить его источник, злоумышленник не сможет замаскироваться под кого-либо.
Целостность. Получатель сообщения может проверить, не было ли сообщение изменено в процесседоставки, злоумышленник не сможет подменить правильное сообщение