Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Алгоритм пересылки писем.


Автор: Nookie 4.6.2008, 16:14
Задали вот такую задачку.. 
есть почтовый сервер, им пользуются 2 пользователя А и Б.


При отправке писем, каждый пользователь имеет свой ключ, он может отправить письмо либо открытое, либо закрытое.

Сервер очень хитрый, он вынимается все из письма если оно открыто и ничего не делает, если оно закрыто.

как А и Б обменятся сообщениями, если они не знают ключи друг друга.

Автор: mmvds 4.6.2008, 17:07
Задача я так понял чисто теоретическая, других способов связи нет.
В голову пришло следующее решение:
Берем ключ пользователя А, переводим в двоичный вид и посылаем столько писем, какова длина ключа, т.е. например ключ 128 битный, отправляем 128 писем при том если бит равен 1 то отправляем любой шифрованный текст, если 0 - открытый. Пользователь Б принимает письма, и восстанавливает ключ обратно. Ну а дальше все просто получив ключ пользователя А пользователь Б шифрует ключем А свой ключ, и посылает пользователю А

Автор: maxim1000 4.6.2008, 21:27
Цитата(Nookie @  4.6.2008,  16:14 Найти цитируемый пост)
Сервер очень хитрый, он вынимается все из письма

ну а само письмо он адресату всё-таки посылает?

Автор: Alexandr87 4.6.2008, 21:46
Nookie, втыкаем в ассиметричную криптографию в общем, и в http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange в частности.

Добавлено через 2 минуты и 45 секунд
mmvds, угу, а сервер их по пути расшифровывает. Ведь зная "ваш" алгоритм, обмена он также перехватывает ваш ключ.

Да и вообще ключевая фраза: 
Цитата(Nookie @  4.6.2008,  19:14 Найти цитируемый пост)
каждый пользователь имеет свой ключ


Автор: Nookie 4.6.2008, 22:54
Насчет этого алгоритма я знал, но там как-то просто все делается.... думаю завтра узнаю.. как узнаю отпишу.

Автор: mmvds 4.6.2008, 23:09
Цитата(Alexandr87 @  4.6.2008,  21:46 Найти цитируемый пост)
mmvds, угу, а сервер их по пути расшифровывает. Ведь зная "ваш" алгоритм, обмена он также перехватывает ваш ключ.

Не понял, как сервер узнает алгоритм обмена ключами?
По-моему ясно сказано - шифрованные письма оставляет как есть, из нешифрованных убирает все содержимое, так настроен почтовый сервер.
То что сервер сам узнает любые алгоритмы передачи ключа ничего не сказано, для него это просто 128 писем.
Цитата(Alexandr87 @  4.6.2008,  21:46 Найти цитируемый пост)
Nookie, втыкаем в ассиметричную криптографию в общем, и в схему  ключевого обмена Diffie-Hellman  в частности.

И что? См. внимательнее, как раз в этом и проблема, как передать открытый ключ.

Автор: Alexandr87 5.6.2008, 04:22
Цитата(mmvds @  5.6.2008,  02:09 Найти цитируемый пост)
Не понял, как сервер узнает алгоритм обмена ключами?

google принцип кирхгофа.


Цитата(mmvds @  5.6.2008,  02:09 Найти цитируемый пост)

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

таки не убирается, а вынимается.
Т.е. более логично, если почтовик просто ведет лог, переданных через него писем, чем убирает сообщение и отправляет адресату пустое письмо ))).

Автор: Akina 5.6.2008, 08:12
Первый делает письмо со случайным содержимым, XOR-ит его своим ключом и отправляет. Второй XOR-ит его своим ключом и возвращает. Первый XOR-ит его своим ключом и исходным содержимым. В сухом остатке - ключ второго.

((((Random XOR K1) XOR K2) XOR K1) XOR Random) = K2

Есссно вместо XOR можно использовать любой алгоритм, обладающий свойством "замкнутости".

Автор: Alexandr87 5.6.2008, 08:32
Akina
Цитата(Akina @  5.6.2008,  11:12 Найти цитируемый пост)
В сухом остатке - ключ второго.

угу, сервер тоже ксорит то что через него прошло от Первого ко Второму, с тем что Второй ответил Первому и получает в сухом остатке тот же самый ключ второго.


Автор: Nookie 5.6.2008, 14:45
В общем из-за этой нерешенной задачи я получил сегодня 3.. обидно.. а задача н предполагает шифрование.. 
Там просто есть ключ от письма(самый настоящий ключ, железный такой)... сервер = обычному почтамт, который вынимает все из откртых писем и не делает ничего с закрытыми ящиками...

решение мне рассказали, но я как-то не понял.

Добавлено через 1 минуту и 54 секунды
типо посылает из А в В письмно, закрывает ключом А, потом при получении В он закрывает своим ключом В и отсылает к А, а А уже с то время открывает своим ключом и все может прочитать, вот там мне и объяснили. вот такая фигня. Насчет этого метода мне сказали что он есть, с названием какой-то двойной фамилии.. вот только я не запомнил.

Автор: Akina 5.6.2008, 15:24
Alexandr87, XOR приведен как пример простейшего преобразования. Вообще если предполагается, что сервер знает абсолютно всё, кроме ключей и сообщений...

Цитата(Nookie @  5.6.2008,  15:45 Найти цитируемый пост)
посылает из А в В письмно, закрывает ключом А, потом при получении В он закрывает своим ключом В и отсылает к А, а А уже с то время открывает своим ключом и все может прочитать

именно то, о чем я и написАл...

Автор: Alexandr87 5.6.2008, 16:17
Цитата(Akina @ 5.6.2008,  18:24)
Alexandr87, XOR приведен как пример простейшего преобразования. Вообще если предполагается, что сервер знает абсолютно всё, кроме ключей и сообщений...

Цитата(Nookie @  5.6.2008,  15:45 Найти цитируемый пост)
посылает из А в В письмно, закрывает ключом А, потом при получении В он закрывает своим ключом В и отсылает к А, а А уже с то время открывает своим ключом и все может прочитать

именно то, о чем я и написАл...


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

Автор: Akina 5.6.2008, 16:24
Цитата(Alexandr87 @  5.6.2008,  17:17 Найти цитируемый пост)
Смысл в той операции, которая по-вашему должна стоять вместо ксор. 

Да. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)