• XSS.stack #1 – первый литературный журнал от юзеров форума

Криптосистемы с открытым ключом

n1†R0x

CPU register
Пользователь
Регистрация
02.04.2005
Сообщения
1 594
Реакции
3
Наверное, самое слабое место практически в любой криптографической системе - это ключи. И действительно, зная нужный код, можно легко расшифровать любое сообщение. Поэтому ключи должны храниться в абсолютно надежном месте. Однако если взять обычную симметричную криптографическую систему, то мы сталкиваемся с серьезной проблемой. Ведь в этом случае один и тот же ключ нужен как для шифрования, так и для расшифровки данных. Хорошо, если оба процесса осуществляются на одном компьютере. А что делать, если конфиденциальную информацию нужно передать на другой конец земного шара? Тогда оба участника процесса (и отправитель, и получатель) должны иметь ключ. Однако в общем случае при каждом шифровании устанавливается новый код. И этот код нужно как-то переправить получателю данных перед отправкой основного сообщения. Естественно, при передаче ключа должна сохраняться полная секретность. К сожалению, на практике добиться этого очень сложно. Ну а если в распоряжении участников пересылки информации есть надежный секретный канал, то зачем вообще нужно шифрование, не проще ли будет сразу отправить по нему все сообщение?

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

Основой всех криптосистем с открытыми ключами являются необратимые математические преобразования. Что это? Например, есть определенная математическая функция y=f(x). При этом значение y вычисляется очень просто. Для этого нужно знать только саму функцию и параметр x. Однако по y и f рассчитать x невозможно. Это и есть необратимое преобразование. Причем под необратимостью в данном случае подразумевается не абсолютная невозможность вычисления параметра x, а всего лишь невозможность сделать это за приемлемый интервал времени с использованием современных вычислительных средств. Кстати, в математике существует огромное количество математических функций, которые, казалось бы, могут быть использованы в криптосистемах с открытым ключом. Однако на самом деле это не так. По разным причинам подавляющее большинство из них не подходят для этого. Реально на сегодняшний день в криптографии используются всего лишь три типа необратимых преобразований: вычисление логарифма в конечном поле, вычисление корней алгебраических уравнений и разложение больших чисел на простые множители.

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

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

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

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

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

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

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

Марат Давлетханов
 
Да, криптосистемы с открытым ключом - действительно хорошая вещь. Они достаточно защищены.
Не могу понять одного. В примере, рассмотрином в статье говорится, что если y=f(x), то
значение y вычисляется очень просто. Для этого нужно знать только саму функцию и параметр x. Однако по y и f рассчитать x невозможно.
Почему невозможно рассчитать у???
Возьмем функцию y=10x+3. Пусть х=1, тогда у=13
теперь рассмотрим функцию у=10х+3, когда у=13
Тогда х=1.
Почему же тогда по y и f невозможно рассчитать х??? :)
 
Есть функции у которых при обратном решении есть множество ответов. Скажем у квадратного -2, кубического уравнения - 3 и т.д., есть и вообще с множеством решений (помнится мне такое из вышки, любое число подходит), такие вот и берутся.
 
Да, криптосистемы с открытым ключом - действительно хорошая вещь. Они достаточно защищены.
Не могу понять одного. В примере, рассмотрином в статье говорится, что если y=f(x), то
значение y вычисляется очень просто. Для этого нужно знать только саму функцию и параметр x. Однако по y и f рассчитать x невозможно.
Почему невозможно рассчитать у???
Возьмем функцию y=10x+3. Пусть х=1, тогда у=13
теперь рассмотрим функцию у=10х+3, когда у=13
Тогда х=1.
Почему же тогда по y и f невозможно рассчитать х???

Ответ: Ты не правильно похоже понял, как я понимаю, известна функция y, но неизвестна зависимость x(y), поэтому на основе значения y мы зашифровываем сообщение, а потом уже зная секретный ключ и соответственно x , мы расшифровываем.
 
AKella, по поводу твоего вопроса. Сейчас задачи по уровню сложности делятся на полиномиальные и неполиномиальные, в зависимости от машинного времени, требуемого на решение задачи. Для решения полиномиальных задач с применением современных компьютеров требуется астрономическое время. Существуют неполиномиальные функции, обратные функции которых полиномиальны (проще говоря, такие функции решаются "в одну сторону"). Например, возведение в степень - простая операция, а обратная ей, логарифмирование - очень сложная, для которой по сути нет алгоритма. Для подобных функций легко рассчитать y по х, а наоборот - невозможно, если не знать ключа.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх