если обе стороны уже знают это и согласны с тем, что это не изменится ... тогда я не могу обойтись без необходимости?
Да, но я думаю, что вы упускаете суть. Программа поставляется с ключом, но пользователь никак не может знать, что программа, которую он загружает, на самом деле принадлежит вам, а не какой-то злонамеренный хакер, перехватывающий / переписывающий сообщение; все, что видит пользователь, это биты, идущие от провода на стене.
Обычно тогда вы подписываете банку своим ключом и отправляете ключ вместе с вашей программой. Теперь у нас проблема с яйцом и курицей: откуда они знают, что ключ от тебя?
Это то место, куда входит центр сертификации; ключ CA - уже на их компьютере, поэтому они оставляют это на CA, чтобы проверить, кто вы и подписать ваш открытый ключ. Затем, когда пользователь получает открытый ключ, проверяет, что он был подписан ЦС, и проверяет, что ключ был подписан ключом, он знает , что ключ принадлежит вам, и, таким образом, файл должен быть от вас , поскольку вы единственный, кто мог подписать его с помощью закрытого ключа.
Теперь, если ваш ключ был на их компьютере раньше времени (например, внутри компании, где ключи физически размещаются на компьютерах при их настройке), они да, вам абсолютно не нужно подписать ключ.