Существует ли безопасный криптографический алгоритм, в котором шифрование и дешифрование могут быть в любом порядке? - PullRequest
4 голосов
/ 21 января 2010

Я ищу криптографический алгоритм, который удовлетворяет следующим правилам:

E (ключ1, E (ключ2, сообщение)) = E (ключ2, E (ключ1, сообщение))

И, очевидно, то же самое для расшифровки.

Это, вероятно, длинный путь, так как я сомневаюсь, что такой алгоритм существует, но подумал, что стоит спросить.

Спасибо

Ответы [ 5 ]

7 голосов
/ 21 января 2010

RSA с тем же модулем сделает это. Возвышение до степени а, тогда сила b - это то же самое, что повышение до степени b, тогда а.

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

Может быть, вам нужен симметричный алгоритм с этим свойством?

3 голосов
/ 21 января 2010

Две известные криптосистемы, которые удовлетворяют

E (ключ1, E (ключ2, сообщение)) = E (ключ2, E (ключ1, сообщение))

- криптосистема Масси Омура и трехпроходный протокол Шамира. Одной из причин предпочтения этих двух схем является следующее свойство: злоумышленник, имеющий доступ к зашифрованным текстам E (ключ1, сообщение), E (ключ2, сообщение) и E (ключ1, E (ключ2, сообщение)), не может найти сообщение. С другой стороны, решения, основанные на RSA или потоковом шифре, могут быть нарушены в этом предположении.

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

3 голосов
/ 21 января 2010

В этой статье есть некоторые ссылки: http://www.cs.ucla.edu/wing/publication/papers/Yang.VTC04.pdf

Одним из таких документов является: http://icsd.i2r.a -star.edu.sg / публикации / BaoFeng_21190190.pdf

Также, конечно, все потоковые шифры на основе XOR обладают этим свойством.

1 голос
/ 07 августа 2010

Извините за баржу и поздний ответ ....

E (ключ1, E (ключ2, сообщение)) = E (ключ2, E (ключ1, сообщение))

... то есть (сообщение XOR key1) XOR key2 == (сообщение XOR key2) XOR key1, так что ключи могут применяться в любом порядке для шифрования или дешифрование, но оба ключа необходимы для дешифрования сообщения, которое таким образом, зашифрованы.

Это не эквивалентно. По предложению XOR можно найти третий ключ, key3, такой, что (сообщение XOR key3) == ((сообщение XOR key1) ключ XOR2). ключ3 будет (ключ1 XOR ключ2). Я считаю, что собственность не удовлетворяет требованиям ОП.

Возвращаясь к моему уроку криптографии (и IIRC), математикам потребовалось некоторое время, чтобы доказать, что DES не был закрыт при его работе, так что не было краткого пути восстановления простого текста с использованием 2-клавишных тройных дескрипторов и 3. Тройной ключ То есть E (key1, E (key2, Message))! = E (key3, message).

Jeff

1 голос
/ 21 января 2010

Если E - это просто функция XOR между ключом (или некоторым криптографически сгенерированным его расширением) и текстом (зашифрованный или простой), то он будет демонстрировать свойство, которое вы указываете.

То есть (сообщение XOR ключа 1) ключ XOR2 == (сообщение XOR ключа 2) ключ XOR1, так что ключи могут применяться в любом порядке для шифрования или дешифрования, но оба ключа требуются для дешифрования сообщения, зашифрованного таким образом .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...