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