Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Алгоритм пересылки писем. |
Автор: Nookie 4.6.2008, 16:14 |
Задали вот такую задачку.. есть почтовый сервер, им пользуются 2 пользователя А и Б. При отправке писем, каждый пользователь имеет свой ключ, он может отправить письмо либо открытое, либо закрытое. Сервер очень хитрый, он вынимается все из письма если оно открыто и ничего не делает, если оно закрыто. как А и Б обменятся сообщениями, если они не знают ключи друг друга. |
Автор: mmvds 4.6.2008, 17:07 |
Задача я так понял чисто теоретическая, других способов связи нет. В голову пришло следующее решение: Берем ключ пользователя А, переводим в двоичный вид и посылаем столько писем, какова длина ключа, т.е. например ключ 128 битный, отправляем 128 писем при том если бит равен 1 то отправляем любой шифрованный текст, если 0 - открытый. Пользователь Б принимает письма, и восстанавливает ключ обратно. Ну а дальше все просто получив ключ пользователя А пользователь Б шифрует ключем А свой ключ, и посылает пользователю А |
Автор: maxim1000 4.6.2008, 21:27 |
ну а само письмо он адресату всё-таки посылает? |
Автор: Alexandr87 4.6.2008, 21:46 |
Nookie, втыкаем в ассиметричную криптографию в общем, и в http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange в частности. Добавлено через 2 минуты и 45 секунд mmvds, угу, а сервер их по пути расшифровывает. Ведь зная "ваш" алгоритм, обмена он также перехватывает ваш ключ. Да и вообще ключевая фраза: |
Автор: Nookie 4.6.2008, 22:54 |
Насчет этого алгоритма я знал, но там как-то просто все делается.... думаю завтра узнаю.. как узнаю отпишу. |
Автор: Alexandr87 5.6.2008, 04:22 | ||
google принцип кирхгофа.
таки не убирается, а вынимается. Т.е. более логично, если почтовик просто ведет лог, переданных через него писем, чем убирает сообщение и отправляет адресату пустое письмо ))). |
Автор: 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, угу, сервер тоже ксорит то что через него прошло от Первого ко Второму, с тем что Второй ответил Первому и получает в сухом остатке тот же самый ключ второго. |
Автор: Nookie 5.6.2008, 14:45 |
В общем из-за этой нерешенной задачи я получил сегодня 3.. обидно.. а задача н предполагает шифрование.. Там просто есть ключ от письма(самый настоящий ключ, железный такой)... сервер = обычному почтамт, который вынимает все из откртых писем и не делает ничего с закрытыми ящиками... решение мне рассказали, но я как-то не понял. Добавлено через 1 минуту и 54 секунды типо посылает из А в В письмно, закрывает ключом А, потом при получении В он закрывает своим ключом В и отсылает к А, а А уже с то время открывает своим ключом и все может прочитать, вот там мне и объяснили. вот такая фигня. Насчет этого метода мне сказали что он есть, с названием какой-то двойной фамилии.. вот только я не запомнил. |
Автор: Akina 5.6.2008, 15:24 | ||
Alexandr87, XOR приведен как пример простейшего преобразования. Вообще если предполагается, что сервер знает абсолютно всё, кроме ключей и сообщений...
именно то, о чем я и написАл... |
Автор: Alexandr87 5.6.2008, 16:17 | ||||
смысл не в этом длинном предложении, которое еще ни факт что было правильно записано. Смысл в том методе с названием двойной фамилии. Смысл в той операции, которая по-вашему должна стоять вместо ксор. |
Автор: Akina 5.6.2008, 16:24 | ||
Да. |