Ассиметричное шифрованиe

При шифровании с открытым ключом каждым из собеседников создается пара ключей – открытый ключ и закрытый ключ. Эти ключи связаны друг с другом, поэтому расшифровать сообщения, зашифрованное с помощью открытого ключа, можно только с помощью соответствующего закрытого ключа. Важным моментом является то, что при создании ключей возможна генерация очень больших чисел таким образом, что при знании открытого ключа нельзя вычислить закрытый ключ никаким образом. Таким образом, обеспечивание надежного шифрования сообщений базируется на знании закрытого ключа исключительно его владельцем. В основе идеи ассиметричного шифрования лежит сложный математический вопрос, позволяющий строить односторонние функции. По известному х легко определяется функция y = f(x). Но при этом по известному значению y очень сложно вычислить х. В качестве открытого ключа используется y, а в качестве закрытого x. Для всех методов шифрования с открытым ключом математически строго не доказано отсутствие других методов вычисление закрытого ключа методом перебора. Криптосистемы с открытыми ключами различаются видом односторонних функций.
При необходимости передачи информации от собеседника к собеседнику действует единая схема реализации ассиметричного шифрования. Для начала первый собеседник выбирает алгоритм и пару открытого и закрытого ключей. Открытый ключ посылается второму собеседнику по открытому, незащищенному каналу. После этого второй собеседник шифрует информацию с помощью присланного открытого ключа и передает полученный шифр обратно первому собеседнику, который расшифровывает сообщение с помощью созданного в начале закрытого ключа. При этом, если необходимо наладить канал связи в обе стороны, то операции до расшифровки сообщений делают оба собеседника. Таким образом, каждый будет знать свои закрытый, открытый ключи и открытый ключ собеседника.
Таким образом, если обозначить через EA открытый ключ собеседника А, через DA закрытый ключ собеседника А, то v=EA(u) – это результат зашифрования сообщения u, а u=DA(v) – результат расшифровки сообщения v. При этом преобразования должны быть такими, что для любого u выполняется равенство DA(EA(u))=u.
Криптография с открытым ключом используется как самостоятельное средство защиты информации, так и как средство распределения ключей, и как средство аутентификации пользователей. Однако, как и у любой системы, у этого способа шифрования есть свои преимущества и недостатки относительно симметричного шифрования.
К преимуществам можно отнести отсутствие необходимости передачи секретного ключа по надежному каналу и знание ключа расшифровки только одним из собеседников. Кроме того, в больших сетях число ключей будет значительно меньше, чем в симметричной системе. К недостаткам же можно отнести сложность внесения изменений в алгоритм, более длинные ключи, более медленный процесс шифровки и расшифровки сообщения и необходимость бОльших вычислительных ресурсов для использования.
Разберем несколько самых известных систем, основанных на шифровании с помощью открытого ключа.
В 1977 учеными Массачусетского технологического института был разработан алгоритм шифрования RSA, основанный на проблеме разложения на множители (задача факторизации). Эта система была названа RSA по первым буквам фамилий ученых и стала первым алгоритмом, пригодным и для шифрования, и для цифровой подписи. В данном алгоритме выбираются простые числа p и q, которые держатся в секрете, а публикуется только их произведение N=p*q и ключ зашифровывания (открытый ключ). Закрытый ключ, то есть ключ расшифровки, секретен и вырабатывается с помощью знания факторизации чисел N (то есть знания p и q).
Система Эль-Гамаля основана на сложности вычисления дискретных логарифмов в конечных полях. Включает в себя алгоритм шифрования и алгоритм цифровой подписи. Схема была предложена Тахером Эль-Гамалем в 1984 году. Фактически, он разработал один из вариантов алгоритма Диффи-Хеллмана.: усовершенствовал систему и получил два алгоритма, которые использовались для шифрования и для обеспечения аутентификации. Но алгоритм Эль-Гамаля не был запатентован и, поэтому, стал более дешевой альтернативой, так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает под действие патента Диффи-Хеллмана.
Система Мак-Элиса основана на теории алгебраического кодирования (декодирование полных линейных кодов) и была первой схемой, использующая рандомизацию в процессе шифрования. Разработана Робертом Мак-Элисом в 1978 году. Для закрытого ключа выбирается двоичный код Гоппа исправляющий ошибки, для которого известен эффективный алгоритм декодирования (алгоритм Петерсона). Открытый же ключ получается с помощью маскировки выбранного кода как полного линейного.
В заключение хочу сказать, что ассиметричное шифрование является более надежным, чем симметричное. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME.