Author Topic: Занимательная криптография  (Read 2963 times)

0 Members and 1 Guest are viewing this topic.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
В самом деле. Если наши друзья уже общаются, пусть даже и фсб-шным устройством посередине, которое расшифровыает, перешифровывает и честно передает их сообщения друг другу, они по этому каналу могут теперь сказать что угодно.

Как этим воспользоваться, чтобы проверить, не сидит ли между ними посредник?
Ну, Telegram напрмер отображает хеш используемого ключа шифрования и друзья могут в качестве минимальной безопасности просто перекинуть их друг другу в чате. Но у ФСБая программа вполне может отлавливать и это, и увидев в расшифрованном тексте этот хеш -- автоматически подменять его на свой. Можно усложнить им задачу, произвольно вставляя пробелы в хеш, произвольно обрезав, заменить одну из букв на слово, начинающееся с этой буквы, либо вообще применить к хешу преобразование, известное только двум друзьям. Можно активировать голосовую связь и сказать несколько цифр хеша голосом. Если хеши не совпадают -- значит посредник есть.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Bhudh

  • Posts: 54853
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
увидев в расшифрованном тексте этот хеш -- автоматически подменять его на свой
Чтобы подменить хэш — надо знать, что это именно хэш.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
увидев в расшифрованном тексте этот хеш -- автоматически подменять его на свой
Чтобы подменить хэш — надо знать, что это именно хэш.
Ну так ФСБ-шной проге известно значение этого хеша, а поиск по подстроке известного значения, даже с пробелами и прочими подставными символами -- задача простая. Но конечно если написать "возьми ключ, добавь абвгд, потом возьми md5, потом sha1, потом crc32 у меня получилось ХХ ХХ ХХ ХХ" -- то автоматический алгоритм замены тут срежется.
В общем, основной недостаток тут в том, что эта проверка работает только в неформализованных протоколах, где автоматический анализ сообщений затруднён.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Солохин

  • Posts: 16703
  • Gender: Male
ФСБ-шной проге известно значение этого хеша
Вот именно! И это облегчает им задачу.
А значит, нам лучше передавать не значение хеша ключа (который проге уже известен), а нечто такое, что ей неизвестно.
Что именно? Вариантов у нас масса.
Ведь она вынуждена перекодировать заново любой код, который мы посылаем друг другу. Я высылаю один код (с одним ключом), а ты получаешь другой код (с другим ключом). При расшифровке они становятся неотличимы. Но ДО расшифровки-то они разные! Значит, нам достаточно сравнить один или несколько байт высылаемого кода с тем же (теми же) байтами получаемого кода. Фсб-шная программа знает и то, и другое. Но! Она не знает, какой именно байт или байты я выберу для сравнения.

Естественно, я должен тебе сообщить номер/номера этих байтов, ведь ты-то должен знать, что именно с чем нужно сравнивать. Но! Сообщить это можно уже ПОСЛЕ того, как хеш этого байта (этих байтов) УЖЕ выслан получателю. А значит, подменить его нельзя; поздно.

Как Вам такая идея, Upliner?

Удалось мне сказать нечто новое для Вас? :)
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Естественно, я должен тебе сообщить номер/номера этих байтов, ведь ты-то должен знать, что именно с чем нужно сравнивать. Но! Сообщить это можно уже ПОСЛЕ того, как хеш этого байта (этих байтов) УЖЕ выслан получателю. А значит, подменить его нельзя; поздно.

Как Вам такая идея, Upliner?

Удалось мне сказать нечто новое для Вас? :)
По сути это то же самое, что я напсал выше, только число ХХ ХХ ХХ ХХ отправляются сначала, а алгоритм, по которому получается это самое число -- позже.
Недостатки остаются те же -- если ФСБшникам вдруг станет известен алгоритм, по которому товарищи общаются, то они могут в ручном режиме подменить там всё. Не важно, что это будет -- либо проивольный байт хеша, либо хеш от хеша+длинной произвольной стоки, передаваемой позже.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Солохин

  • Posts: 16703
  • Gender: Male
Мне кажется, Вы не совсем точно поняли мою идею.

Давайте скажу подробнее.

Допустим, я высылаю Вам шифровку моего текста. Затем я высылаю хеш этой шифровки.
ФСБшная прога расшифровывает мое послание, перешифровывает его по-своему и высылает Вам, присовокупляя к нему новый хеш, соответствующий его шифровке. Тут все ясно.

А что, если сделать наоборот. Сначала я высылаю Вам хеш своей шифровки. ФСБ передает его - куда деваться-то? Не передашь - станет ясно, что на проводе посредник. И только после этого я высылаю саму шифровку. Что теперь будет делать бедная ФСБшная прога? Если она перешифрует его как обычно - хеш не совпадет, вот и всё. Ведь другой шифр даст другое значение хеша. Заранее знать, что я перешлю, чтобы подменить хеш, она не может.

Профит.
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Заранее знать, что я перешлю, чтобы подменить хеш, она не может.
Ну вот я и говорю, что надёжность вашего метода работает только на этом. Если ваша схема станет популярной, то ФСБшники будут обо всём будут знать заранее. Выход один -- каждым шпионам выдумывать свой алгоритм и держать его в секрете.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Солохин

  • Posts: 16703
  • Gender: Male
Если ваша схема станет популярной, то ФСБшники будут обо всём будут знать заранее.
Пусть себе знают. Сделать-то всё равно ничего нельзя.
Не пересылать хеш? подменить его? Ну, тогда будет ясно, что на проводе сидит "дятел".
Переслать? но тогда он не совпадет с хешем перешифрованного послания.

Выход один -- каждым шпионам выдумывать свой алгоритм и держать его в секрете.
Нет, не нужно. Предложенная мною схема работает даже в том случае, если она общеизвестна.
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Не пересылать хеш? подменить его? Ну, тогда будет ясно, что на проводе сидит "дятел".
Так и не понял, каким образом это станет ясно. Вот скажем, A посылает B хеш, C его перехватывает, B ничего не пересылает, а А посылает "ОК, я получил хеш, давай сам шифротекст". А пересылает шифротекст, C перешифровывает и хеш, и шифротекст, и передаёт B новый хеш. B отвечает: "я получил хеш, давай шифротекст" новый шифротекст с правильными хешами пересылается и никто ничего не может вычислить.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Awwal12

  • Super Moderator
  • *
  • Posts: 59890
  • Gender: Male
Факт перехвата на линии в любом случае можно с хорошей вероятностью определить по задержкам передачи.
Фашиствующий имперец, асексуал и многожёнец, татарофоб, заслуженный функционер РПЦ. Слушает радио "Радонеж" и терпеть не может счастливых людей.

"Да здравствуют ДОЯРКИ!! Потому что доярки - это раса сверхчеловеков. За ними будущее планеты. Они переживут даже атомную войну, потому что доярки вечны, ибо хтоничны. И дадут потомство, которое тоже будет доярами и доярками. Ура, товарищи!.." (c) Awwal12

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Задержки по разным причинам бывают. Но вообще да, если ввести в протокол специальные задержки, то можно с довольно высокой вероятностью определять слежку.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Солохин

  • Posts: 16703
  • Gender: Male
Вот скажем, A посылает B хеш, C его перехватывает, B ничего не пересылает, а А посылает "ОК, я получил хеш, давай сам шифротекст". А пересылает шифротекст, C перешифровывает и хеш, и шифротекст, и передаёт B новый хеш. B отвечает: "я получил хеш, давай шифротекст" новый шифротекст с правильными хешами пересылается и никто ничего не может вычислить.

Прежде всего, позвольте выразить Вам, дорогой Upliner, искреннюю благодарность за вразумление. Только теперь, благодаря Вам, я в полной мере осознал величие метода MITM (по-русски ЧП - "человек посередине")!

Да, это гениальная вещь. Какой бы алгоритм секретной связи мы ни придумали, ФСБ может поставить этот алгоритм посередине между нами, и он будет делать все как надо, обеспечивая как мою связь с Вами, так и Вашу связь со мной. И обнаружить его присутствие не представляется возможным!

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

И можете себе представить!? Я таки придумал это решение. Ключом к этому решению послужили Ваши слова
если ввести в протокол специальные задержки, то можно с довольно высокой вероятностью определять слежку

Моя идея заключается в следующем.

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

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

Фиктивное сообщение нарушает "одновременность" обмена - в этом суть.

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


Как Вам такая схема?

Очень надеюсь на мощную ответную критику. Если Вы найдете способ взломать и её, я буду просто в восторге!
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Но бороться с этим методом взлома нетрудно.
А именно.
Каждый раз надо высылать друг другу не только последнее (текущее) сообщение, но и всю историю переписки, сопровождая её хешем. И алгоритм должен автоматически сравнивать эту историю с зафиксированной в памяти компьютера. Таким образом, фиктивное сообщение, при помощи которого взламывается логическая одновременность, будет сразу выявлено следующем же шаге.
Не уверен, что до конца понял вашу идею, но что мешает человеку посередине подменять всю историю переписки, вставляя в неё свои фиктивные сообщения вместо оригинальных?
Как правило общение происходит в форме запрос-ответ -- т.е. любая из сторон не знает, что отвечать, пока не дождётся ответа с противоположной стороны, поэтому сообщения, посылаемые "одновременно" смысловой нагрузки не несут, их без проблем можно подменить.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Online yurifromspb

  • Posts: 1578
Это уже матрица какая-то. Каждый, с кем бы он, по его мнению, ни общался, по факту общается с одним и тем же "большим братом".
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

В принципе, если "больших братьев" хотя бы два, можно параллельно общаться через обоих.
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Солохин

  • Posts: 16703
  • Gender: Male
если "больших братьев" хотя бы два, можно параллельно общаться через обоих.
Кстати, если их два (два канала связи), то через одного из них можно передать информацию, которая обличит другого.

Это тоже логический ход для решения нашей проблемы. Хотя пока неясно, как его использовать.
Sinjoro Jesuo Kristo purigu min.


Вне форума.

что мешает человеку посередине подменять всю историю переписки, вставляя в неё свои фиктивные сообщения вместо оригинальных?
Да, это вариант.
Но именно ВСЮ историю.

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

Тогда выходит, что наша задача упирается в (wiki/ru) Тест_Тьюринга. Сможет ли ФСБ-шный алгоритм убедительно имитировать живого собеседника?

Но замечу: задачу о проверке канала связи мы решили!
То есть, теперь мы всегда будет знать, что человека-посередине между нами нет. Он либо целиком подменяет собеседника, либо ты действительно беседуешь с тем,  с кем хотел, без свидетелей.
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
Тогда выходит, что наша задача упирается в (wiki/ru) Тест_Тьюринга. Сможет ли ФСБ-шный алгоритм убедительно имитировать живого собеседника?
В случае чата -- да, задача упирается в это. Чат, в котором оба собеседника должны что-либо написать, прежде чем увидят сообщения друг друга -- конечно не очень удобен, но да, для взлома такого чата ФСБшникам придётся посадить человека, который будет убедительно имитировать общение для обеих сторон. А вот в случае https-сервера живого общения двух людей не предполагается, поэтому там никаких проблем быть не должно.
Мы, видите ли, винтили вентили аж квинтиллион раз!

Online yurifromspb

  • Posts: 1578
Кстати, если их два (два канала связи), то через одного из них можно передать информацию, которая обличит другого.

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

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Кстати, если их два (два канала связи), то через одного из них можно передать информацию, которая обличит другого.

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

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Upliner

  • Posts: 3730
  • Gender: Male
  • Blanklanugbesto
У него нет возможности использовать реплики настоящего собеседника вперемешку с фиктивными репликами
Реплики настоящего собеседника использовать можно. Допустим, у нас есть чат, при котором собеседники должны общаться "одновременно". Если один из собеседников пишет второму, то у него загорается запрос: "Х хочет что-то написать вам, ответьте ему".

Если у обычного чата всего два типа сообщений: от А к Б и от Б к А, то у этого получается четыре: запрос от А к Б, запрос от Б к А, ответ от А к Б, ответ от Б к А.

Когда один пишет другому, у ФСБ две стратегии: эмулировать ответ, либо эмулировать запрос.
В первом случае случае ответ подменяется на какое-то нейтральное сообщение вроде "привет", а реальный ответ либо игнорируется, либо учитывается на будущее.
При второй стратегии -- при любом запросе от А к Б, посылаем к Б запрос "привет" и получаем от него ответ, этот ответ посылаем к А и получаем от него текст запроса. Если запрос был "привет" либо какое-либо приветствие -- то ничего не делаем, если сообщение было другое -- посылаем новый запрос к Б, уже с реальным сообщением от А.

Трудность в том, как чередовать эти стратегии и насколько реально это сделать автоматически...
Мы, видите ли, винтили вентили аж квинтиллион раз!

Offline Солохин

  • Posts: 16703
  • Gender: Male
Это уже матрица какая-то. Каждый, с кем бы он, по его мнению, ни общался, по факту общается с одним и тем же "большим братом".
Мне подумалось, что все эти современные Сири и Алисы - это первые весточки идеального Большого Брат, который прямо на наших глаза учится общаться с нами, заняв положение посредника (того самого ЧеловекаПосередине). Я бы на месте создателей этих нейросетей использовал реплики/вопросы/ответы, услышанные сетью от одного человека, в беседе с другим человеком. Действуя таким образом, можно мало-помалу довести Алису до уровня, когда она пройдет тест Тюринга и станет самым лучшим и незаменимым "другом" всякого человека.

Тут я опять возвращаюсь к уже высказанной идее: https://palaman.livejournal.com/357315.html

Как ни крути, а всё развивается именно в этом направлении.
Sinjoro Jesuo Kristo purigu min.


Вне форума.

Online yurifromspb

  • Posts: 1578
Против такого никакая стратегия не поможет. Нет общения без посредника, нет и решения предложенной задачи.
Тут остаётся только такая надежда: "нет никого на земле, подобного ему, сотворенного на смех ангелам Моим, всё высокое видит, сам же царь всем жителям вод". Но я не ангел и мне что-то не очень смешно.
Дяденька, я ведь не настоящий лингвист, а этимологический словарь я в интернете нашёл.

Свобода у каждого своя, как и очевидность, посмотри, не тьма ли твой свет.

Bāb-lišānī lapit-ma, lū awīlāta! // from "Lamentations of Urišapibim".

Offline Bhudh

  • Posts: 54853
  • Gender: Male
  • aka 蝎
    • Сайты по языкознанию
сотворенного на смех ангелам Моим
Ну хоть не курам.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Online zwh

  • Posts: 17735
  • Gender: Male
сотворенного на смех ангелам Моим
Ну хоть не курам.
Как там у классика? -- "А набухавшись -- головой в Куру"...

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: