Чтобы этого не произошло, приходится использовать более сложные, но единственно возможные в описанной ситуации асимметричные алгоритмы шифрования. Из приведенного примера должно быть понятно, что при использовании асимметричных алгоритмов ключ шифрования Q нужно хранить в секрете. Ведь с его помощью можно из любого открытого текста получить шифротекст, который подлежит расшифровке (а значит, и проверке) с помощью открытого ключа R. Если секретный ключ Q станет известен злоумышленнику (в такой ситуации говорят, что ключ Q скомпрометирован), то этот злоумышленник сможет зашифровать любой документ и представить его от вашего имени. Напротив, хранить открытый ключ R нет никакого смысла. Его предназначение как раз в том и состоит, чтобы любой желающий мог расшифровать созданный вами шифротекст и таким образом убедиться в его подлинности. Из-за описанных особенностей ключей асимметричные алгоритмы иногда называют алгоритмами с открытым ключом.
Говорят, что в старые времена разрубали монету и давали по одной половинке двум гонцам. Даже если они не были знакомы между собой, при встрече они могли сложить имеющиеся у них части монеты и убедиться, что служат общему делу. Для образности можно сравнить монету с ключом асимметричной криптографии, а части этой монеты — соответственно с секретным и открытым ключами. Вспомним о том, что секретный и открытый ключи, вообще говоря, взаимозаменяемы. То есть, если сообщение шифруется с помощью одного ключа, его можно расшифровать с помощью другого. Как можно использовать это свойство на практике?
Предположим, что кто-то хочет передать вам конфиденциальное сообщение таким образом, чтобы прочесть его мог только адресат. В этом случае ему достаточно узнать ваш открытый ключ (как было выяснено выше, это не составляет никакой проблемы и не несет никакой угрозы), а потом выполнить шифрование сообщения с его помощью. Полученный шифротекст может быть передан вам по открытым каналам связи. В соответствии с обсужденными выше свойствами криптографии с открытым ключом исходное сообщение может быть восстановлено из такого шифротекста только обладателем секретного ключа. Однако в этой статье основное внимание уделяется описанию средств защиты файлов от несанкционированных изменений. В этом направлении осталось рассмотреть еще один момент.
Предположим, что файл имеет достаточно большой размер. Если зашифровать его описанным выше способом, получится шифротекст, по размеру сравнимый с исходным файлом. Конечно, его можно расшифровать с помощью открытого ключа (заодно проверив целостность), но удобнее все-таки иметь перед глазами открытый текст, а количество абракадабры для служебных целей уменьшить. Для этих целей используются так называемые хэширующие преобразования, которые из текста произвольной длины позволяют получить текст фиксированной длины существенно меньше исходного текста. А основным свойством таких преобразований является то, что при небольших изменениях исходного текста результаты преобразования меняются очень сильно, так что практически невозможно для двух различных осмысленных исходных текстов получить одинаковые хэш-преобразования. Как этим воспользоваться? Выполняется хэширование исходного текста, а уже результат шифруется асимметричным алгоритмом с использованием секретного ключа.
Для проверки подлинности предъявляются шифротекст, открытый ключ и исходный текст. Во-первых, по исходному тексту тем же самым способом вычисляется хэш-преобразование, во-вторых, шифротекст расшифровывается с помощью открытого ключа. Если оба результата идентичны — значит, текст не претерпел изменений. Таким образом, шифротекст, полученный только что описанным способом, позволяет установить подлинность документа. Но, поскольку этот шифротекст вырабатывается с использованием секретного ключа, он же позволяет идентифицировать владельца. Никто, кроме владельца секретного ключа, не сможет создать такой шифротекст. Этот факт позволяет использовать его в качестве личной подписи владельца секретного ключа под файлом с текстом документа — электронной цифровой подписи (ЭЦП).
Но пора вернуться из идеального мира математических теорий к реальному миру экономических отношений. Предположим, что две стороны (назовем их условно «А» и «Б») решили организовать между собой обмен документами на машинных носителях. При всем взаимном уважении и доверии во избежание конфликтных ситуаций и для упрощения процедуры разрешения споров они решили использовать механизм ЭЦП. Это допускается в соответствии с п. 2 ст. 161 «Гражданского кодекса Республики Беларусь».