По предложенной вами схеме вы не можете.Ключ здесь (без каламбура) заключается в том, что если метод, используемый для проверки действительности ключей, скомпрометирован, вы теряете.
SSL пытается избежать этого, создавая цепочку подписей - некоторые (очень тщательно охраняемые ипроверено другими методами) ключ подписывает другой ключ, подписывает другой ключ, подписывает ключ Алисы.Проверяя каждый шаг в цепочке, вы можете (в принципе) знать, что цепочка действительна, но если закрытый ключ на любом шаге цепочки скомпрометирован, вы теряете.
PGP (он же GPG) пытаетсярешить проблему другим, но похожим способом - ключи могут быть подписаны любым количеством других ключей, образуя граф (называемый сеть доверия ).Вы выбираете некоторые ключи, которые вы подтвердили действительными, например, проверяя их лично , и помечаете их как доверенные.Тогда любые ключи, достигаемые менее чем за N шагов (и / или из M различных путей из разных доверенных корней), также считаются действительными.
Если вы действительно параноик, вы, конечно, можете физически вручить ключдругому человеку.Конечно, они должны быть уверены, что это не кто-то, замаскированный под вас ...
Тем не менее, единственный действительно надежный способ проверки правильности ключа - это его генерация самостоятельно ... если только ваше оборудование / ОС/ компилятор / мозг тоже взломан:)