RSA: шифрование сообщения с использованием нескольких ключей

Можно ли получить дополнительную безопасность, зашифровав сообщение с помощью 2 или более ключей RSA?

EDIT: Несколько пояснений:

Контекст, который меня больше всего интересует, — это шифрование случайно сгенерированного симметричного ключа.

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

Следует исходить из того, что получение только части сообщения допустимо.

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


person UniCoder    schedule 09.06.2010    source источник
comment
Я считаю, что стандартный способ получить дополнительную безопасность — использовать ключ большего размера.   -  person R Samuel Klatchko    schedule 09.06.2010
comment
нет, как вы думаете, это будет безопасно, зашифровав сообщение двумя ключами?   -  person berkay    schedule 09.06.2010
comment
Даже не предполагая ничего более тонкого, шифрование вашего сообщения двумя ключами удвоит сложность его расшифровки - в то время как шифрование его одним ключом, удвоив исходную длину, будет использовать в общей сложности такое же количество битов ключа, но обеспечит на много порядков больше. трудность.   -  person Nick Johnson    schedule 09.06.2010
comment
Подумайте об этом так. Если двойное шифрование удваивает сложность для злоумышленника, вы можете получить точно такое же увеличение сложности, добавив один бит к первому ключу шифрования. Надеюсь, это поможет.   -  person Slartibartfast    schedule 30.07.2010


Ответы (5)


No.

Если ключ A скомпрометирован, шифрование с помощью A+B защитит от компрометации, но за исключением этого особого случая вы не получите дополнительных преимуществ.

person msw    schedule 09.06.2010
comment
Означает ли это, что RSA(Key1, RSA(Key2, Message)) можно расшифровать одним Key3? В противном случае мне трудно поверить, что нет никакой дополнительной пользы. - person Mike; 09.06.2010
comment
@mike: я почти уверен, что Key3 может не существовать, а если и существует, то у него мучительные (необратимые?) отношения с Key1 и Key2. Однако я не криптолог. Это предположение основано на способе шифрования сообщений нескольким получателям и использовании многофакторных систем ключей. Не пытайтесь повторить это дома, предложите пустоту в Небраске. - person msw; 09.06.2010
comment
Я уверен, что Key3 существует, однако отношения необратимы. В лучшем случае это похоже на попытку взломать RSA(Key1), где компрометация части Key1 не поможет. Однако Key3, вероятно, имеет больше битов, чем Key1. - person Joshua; 10.06.2010
comment
@Джошуа: Положительно? Тогда что это, или, по крайней мере, почему вы уверены? - person President James K. Polk; 10.06.2010
comment
GregS: Поскольку RSA не проходит универсальное доказательство с нулевым разглашением, Key3 должен существовать (обратите внимание, что алгоритм для Key3 не обязательно является RSA). Для RSA нет слабых открытых текстов, поэтому проблема не может быть проще, если добавить больше глубины. КЭД. - person Joshua; 10.06.2010
comment
@Joshua: Это довольно глупо, конечно, если вы разрешите любой алгоритм, вы сможете восстановить исходный открытый текст. Вопрос касается РСА. - person President James K. Polk; 13.06.2010
comment
ГрегС: нет, это не так. Я говорю о сложности атаки. - person Joshua; 14.06.2010

Нет.

Проводить мысленные эксперименты с криптографией небезопасно. Вам рекомендуется строго придерживаться пути, проторенного экспертами.

А когда эксперты хотят защитить что-то получше, они используют больший размер ключа (необходимо не менее 2048 бит, меньшие сертификаты недостаточно для спокойствия) или используйте эллиптическую кривую сертификаты вместо RSA.

Между прочим, вы помните, что тело вашего сообщения обычно шифруется с помощью симметричного шифра и случайного ключа, и что только этот случайный ключ шифруется с помощью открытого ключа получателя. Двойное шифрование этого секретного ключа не сделает этот секретный ключ длиннее и не повлияет на способность злоумышленника взломать его.

Квантовая криптография — я упоминаю о ней только как о захватывающей стороне, вам не нужно учитывать это при выборе — обещает интересные вещи для размеров ключей: ключи RSA будут стерты алгоритм Шора, но симметричные ключи (Гровер) будет только половинной длины (128-битные будут эквивалентны 64-битным, поэтому их можно будет взломать). Конечно, ведутся споры о том, можно ли реализовать такие квантовые машины и т. Д. И т. Д. :)

person Will    schedule 09.06.2010

Составление шифров

Допустим, у вас есть функция шифрования E(M, K), где M — это текстовое сообщение, а K — ключ. Скажем, в E нет известных уязвимостей.

Вы создаете два совершенно не связанных ключа K1 и K2.

Гарантируется, что если вы составите их в виде E(E(M, K1), K2), фактически потерять безопасность таким образом невозможно. Если было возможное нарушение безопасности при шифровании E(M, K1), будь то K2 или любой другой ключ, шифр был взломан, потому что злоумышленник мог просто выполнить E(E(M, K1), KF), где KF — любой ключ, который злоумышленник пожелает выбрать.

Дополнительную информацию см. здесь.

Шифрование каждого второго блока другим ключом

Выводы здесь очевидны. Предполагая, что вы используете правильно составленные криптографические примитивы с обеими комбинациями encryption function:key, если вы шифруете каждый второй блок другим ключом из набора двух ключей, злоумышленник может расшифровать только те блоки, для которых у него есть ключ.

person L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o&#x    schedule 20.06.2010

Да!

Но не используйте необработанное шифрование. Используйте схему шифрования RSA. Вместо повторного шифрования зашифрованного сообщения вторым ключом, который может иметь ослабляющий эффект (я не знаю), используйте алгоритм общего секрета, чтобы разделить ваш секрет на две части. Алгоритм общего секрета позволяет разделить секрет на n частей и гарантирует, что если злоумышленнику удастся получить n-1 частей, он ничего не узнает о секрете. Так что не делите секрет на две части.

Затем у вас может быть более 2 ключей RSA. Другое мощное свойство алгоритма с общим секретом состоит в том, что можно распределить секрет на n частей и потребовать только m частей, где m меньше n, для восстановления секрета. Это делает секретное восстановление более устойчивым к потере фрагментов.

Дополнительную информацию об общем секрете см. здесь: http://en.wikipedia.org/wiki/Shared_secret

person chmike    schedule 09.06.2010

В дополнение к данным ответам, он также просто не работает, если вы не выполните какое-либо исправление. Очень просто, один из модулей должен быть больше другого. Если вы выполняете модификацию RSA с большим модулем в первую очередь и модифицируете меньший модуль в последнюю очередь, вы теряете информацию и не можете гарантировать успешную расшифровку. Очевидное исправление состоит в том, чтобы всегда сначала шифровать с меньшим модулем. Конечно, вам придется выполнять расшифровку в обратном порядке. Еще один простой патч — выбрать модули, которые очень близки друг к другу по размеру, так что вероятность того, что вы встретите зашифрованный текст, который не может быть однозначно расшифрован, исчезающе мала.

person President James K. Polk    schedule 09.06.2010