2010-06-23 3 views
12

Мне интересно, могу ли я иметь несколько открытых ключей для закрытого ключа.PKI несколько открытых ключей

Можно ли это сделать? Если да, то каковы проблемы безопасности !?

Если я генерирую несколько пар ключей на основе тех же начальных значений (без начального вектора), не должны ли клавиши быть «совместимыми»?

+0

Это не сразу очевидно для меня, что вы имеете в виду. Какой метод вы думали: RSA, DSA, ECC? Я не знаю ECC, но сомневаюсь, что это возможно для первых двух. – Rup

+1

IMHO, из того же алгоритма и того же частного ключа, вы должны получать одинаковый открытый ключ каждый раз. – Piskvor

+0

Также стоит прочитать ответ Хенрика Хеллстрема по адресу http://stackoverflow.com/questions/9375044/can-we-have-multiple-public-keys-with-a-single-private-key-for-rsa – cwd

ответ

6

Во всех асимметричных криптосистемах, которые я могу придумать, существует 1-1 соответствие между открытым ключом и закрытым ключом: с учетом секретного ключа вы можете однозначно определить открытый ключ и дать открытый ключ, который вы можете однозначно определить закрытый ключ (но, конечно, должно быть вычислительно невозможно определить закрытый ключ из открытого ключа).

Однако, учитывая один из обычных асимметричных схем вы можете легко создать такую ​​схему: Для того, чтобы создать закрытый ключ n открытых ключей, просто генерируют n государственно-частного пары ключей в нормальной схемы и определяют «секретный ключ», чтобы быть сбор секретных ключей. При подписании только знака со всеми секретными ключами при проверке проверяйте одну из подписей. Шифрование - обычная операция, и дешифрование должно пытаться расшифровать все ключи (один из них должен работать).

+0

Я бы использовал фразу: Учитывая открытый ключ, вы можете проверить, что закрытый ключ является единственным и единственным возможным закрытым ключом. – Slartibartfast

+0

@Slartibartfast: Хотя это также верно, вы всегда можете вычислить закрытый ключ - это займет много времени: если ничего другого, вы можете попробовать все возможные ключи, но большинство криптосистем имеют более быстрые алгоритмы, чем это. –

3

Это невозможно при использовании стандартных алгоритмов.

Если вы посмотрите, как генерируются пары ключей в RSA, сначала вы выбираете открытый ключ, указывая общий экспонент, а затем генерируете закрытый ключ.

Я не могу придумать прецедент для нескольких открытых ключей. Они являются общедоступными, и вы можете получить любой из них, чтобы он не улучшал безопасность.

+1

Это не будет означать, t улучшить безопасность, но это может улучшить конфиденциальность, поскольку невозможно сказать, что два открытых ключа принадлежат одному и тому же человеку. – Ajedi32

0

Непонятно, почему вы считаете, что вам нужно несколько открытых ключей. Это может помочь вам узнать, что если что-то зашифровано открытым ключом, оно не может быть расшифровано с использованием одного и того же открытого ключа.

Если с вашим открытым ключом есть три человека (A, B, C), B и C не могут прочитать сообщение, зашифрованное A, но вы можете (с помощью закрытого ключа).

Если вы хотите, чтобы иметь возможность отправлять сообщение, которое может читать только один из A, B или C, у каждого из них должен быть закрытый ключ, и вы можете поделиться с ним своим открытым ключом.

Похоже, вы хотите рассматривать открытые ключи, такие как личные ключи, и это, вероятно, плохой план.

-1

Частные/открытые ключи имеют отношения 1-1, и поэтому не может быть более одного открытого ключа для данного закрытого ключа.

Однако вы можете иметь 3 отдельных сертификата для одного и того же открытого ключа, если это тот тип вещи, который вы ищете.

+0

Это неправда. У нас может быть несколько открытых ключей. –

Смежные вопросы