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