Разница не в алгоритме, а в том, доверяют ли люди центру сертификации или нет.
Суть сертификата заключается в том, чтобы убедиться, что вы устанавливаете соединение с тем, с кем вы намереваетесь установить соединение.
Если я скажу вам: «Я правильный сервер, поверьте мне в этом», вы можете не верить мне (в конце концов, вы меня не знаете).
Если я скажу вам: «Я правильный сервер, и у меня есть сертификат, подтверждающий это», вы можете сказать: «Хорошо, а кто вам этот сертификат дал?» Если мой ответ «Джо из-за угла», вы все равно можете не верить мне.
Но если я скажу: «У меня есть сертификат, и вы можете подтвердить его у третьей стороны, которой доверяете», вы можете решить, что это хорошее доказательство личности.
То, как вы подтверждаете, это то, что представляет собой стандарт (например, как описано в RFC 5280 ). Но это только технические детали. Вы можете использовать точно такой же алгоритм для сертификата, созданного VeriSign, и для сертификата, который вы создаете сами.
Настоящий вопрос касается доверия: доверяете ли вы тому, кто дает вам «удостоверение личности». Мы доверяем VeriSign настолько, чтобы любой браузер мог принять любое удостоверение личности от них. Должны ли мы доверять людям, которые создают свои собственные подписанные сертификаты? В некоторых случаях мы можем это сделать (в этом случае вы можете установить их сертификаты в браузере вручную), но это не является общим правилом.