Как стать автором
Обновить

История о том как абсолютное оружие оказалось никому не нужным

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров18K
Всего голосов 62: ↑37 и ↓25+24
Комментарии138

Комментарии 138

А всё просто. Процентам так девяносто девяти людей подобный месседжер не нужен - слишком сложно, Телеграма/Сигнала/Протонмейла или что там сейчас в тренде достаточно.

А если вы военный или шпион, то ваше ведомство напишет свою реализацию, а не будет доверять чужой. Задача-то элементарная, Вернам всё сделал ещё сто лет назад.

Процентам так девяносто девяти людей подобный месседжер не нужен

Иными словами, потенциальный рынок - ~80млн человек?

Теоретически, сынок, мы миллионеры...

А для оставшегося 1%, которым всё-таки нужен защищённый мессенджер, нужно, чтобы хранилась история сообщений, нужно, чтобы не было головоломки с генерацией пар ключей, и многим ещё и важно, чтобы был некий доверенный разработчик приложения, а не ноунейм, который опубликовал какое-то никому не известное приложение, и предлагает доверить ему свои самые секретные переписки, обещая, что честно-честно они попадут только к нужному получателю.

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

, а не ноунейм, который опубликовал какое-то никому не известное приложение,

история знает уже такие случаи неоднократно, в них причем фигурировали как то криминал и какой то ФБР. еще и деньги большие платили.

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

Если даже скромные северокорейцы умеют сохранять скриншоты смартфонов, принадлежащих населению, то почему автор считает, что его куаркоды на экране будут секретом от правительства США, ума не приложу.

Военные и шпионы делают это очень непросто

"беззлобие, хрюкостяг, пупсолёт, НЖМТ-1221..."

Так это не ключ, это сообщение. А ключ (равный длине сообщения) надо передать тайно.

Не обязательно, можно запомнить на очень долгое время список книг, и алгоритм выбора страницы и строки.

И? Набор книг и алгоритм - ключ.

Беззлобие - всё еще является сообщением.

А с книгой мы не влетим в частотный анализ? Если злоумышленник знает, что мы используем Вернама с ключом из книги, то он сможет вскрыть ключ?

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

Можно сразу взять г(п)сч.

С шифрованием всё не очевидно. Казалось бы, xor с шумом и будет вам щасьтье. А вот и нет. В букваре есть пример с картинкой в формате BMP, которую вот так зашифровали. Деталей действительно не видно, а контуры четко поосматриваются. Вносите корреляционный анализ ;)

НЖМТ-1221 это модель ключевого носителя с полки 3

Да зачем куаркоды? Правительство сразу файл ключа заберёт.

Почему сразу заберёт? Наоборот, выдаст.

в инфраструктуре распространения ключей

Любой блокчейн, которых теперь до хрена? и есть даже специально предназначенные, для надежной публикации своих никнеймов и блог-страниц типа keybase

Вы публикуете свой открытый ключ, я свой, и понеслась переписка.

Абсолютный шифр - это OTP (одноразовый блокнот). Автор почти переизобрёл его, но не до конца (что характерно, схема управления ключами вышла как раз такая, как надо). Учите основы криптографии, мальчики и девочки, не пытайтесь изобрести всё с нуля, не будьте такими же заносчивыми, как Эдгар Аллан По. И что важно - не пренебрегайте анализом стойкости ваших изобретений к дифференциальным атакам, атакам с известным текстом и известным ключом, а также другим достижениям криптоаналитической мысли.

Спарведливости ради - в данном конкретном случае атаки с известным текстом ничего не дадут. Никакие ключи по каналу передачи самого шифрованного сообщения тоже не передаются.

один показывает QRcode на экране, второй – считывает. Все. И далее на обоих устройствах генерируется (идентичная) длинная последовательность.

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

один показывает QRcode на экране, второй – считывает. 

Если "устройства" это смартфоны уважаемых и эффективных топ-менеджеров(а на практике так и будет!), то можно рыдать и смеяться одновременно - очередная авторская версия бронированных ворот посреди пустыни.

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

Да, если всё это происходит на стандартном смартфоне, то всё ещё печальнее, вопрос стойкости алгоритма генерации там даже не в первой половине списка вопросов...

Автор изобрёл rc4, но с сомнительной стойкостью.

А вот не надо было изобретать велосипед. ГОСТ или AES вполне подойдут. Наверное их могут взомать соответственно ФСБ и ЦРУ. Но сомневаюсь, что кто-либо еще. Так что если автор в РФ - AES вполне хватит :)
Удостоверение второй стороны? Сертификаты и надежный ЦС
Все уже придумано до нас :)

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

Криптопаяльник откроет любые ключи

Кроме тех, которые исследуемая хитрая задница не знает.

В KPI товарища констебля сохранность хитрой задницы не входит ни с каким весом.
Поэтому на месте задницы - лучше знать.

Хорошо быть не следующим в криптографии (это про автора). Можно открывать много нового и изобретать супер варианты. Но есть у автора ключевая фраза (то, что находится в QR-коде) и алгоритм получения последовательности для шифра. А это значит, что длина ключа у нас не равна последовательности, а равна длине ключевой фразы. А значит у нас тут не совершенный шифр, а просто один из. И уже можно на него продумывать разные атаки. Упс
P.S. Совершенный шифр - такой шифр, в котором для любого шифрованного сообщения и любого исходного текста существует ключ, при котором исходный текст преобразуется в шифрованное сообщение. Т.е. если перед вами зашифрованное сообщение, то расшифроватся оно может вообще в любой текст, что делает подбор ключа просто бессмысленным

P.S. Совершенный шифр - такой шифр, в котором для любого шифрованного сообщения и любого исходного текста существует ключ, при котором исходный текст преобразуется в шифрованное сообщение.

XOR и ключ с длиной, больше или равной размеру сообщения? :) На все остальное можно придумывать различные атаки.

Ну как вам сказать... Это определение совершенного шифра. Мне лично известен только этот вариант :) Но я не криптограф, может и другие есть. Но вероятней всего там тоже есть какие-либо подводные камни - иначе зачем нужны AES и другие?

Есть. Надо по надёжному каналу заранее передать ключ, равный длине сообщения.

Но ведь заранее!

Хех, основная проблема шифра Вернама - длина случайной маски равна длине сообщения.

Самый надежный способ передачи ключей – личная встреча.

Если Боб и Алиса лично встречаются, нет смысла шифрования: вместо маски шифра просто передаёте сообщение.

Так то при личной встрече можно нагенерить пару Гб случайных ключей, для текстовых сообщений этого хватит лет на 500.

а, точно. Кому нужен абсолютно секретный мессенджер на 2 абонента ;) а если абонентов 200 - собрать их для обмена ключами то ещё развлечение.

А как сохранить в тайне эту пару Гб случайных ключей?

А как синхронизировать смещение для каждого нового сообщения?

А как синхронизировать смещение для каждого нового сообщения?

Да это как раз не проблема. Открытым текстом пишем - читай с такого-то символа ключа. Надо только проверять, что этот блок ключа ещё не использовался.

Это не проблема при использовании истинно случайной последовательности (как должно быть у Вернама) и надёжного хранения её в секрете. Но автор предлагает алгоритмически её генерировать, что уже делает последовательность псевдослучайной и повторяемой. А где есть повторяемость и открытым текстом даётся смещение, там будет и главная дыра.

Ну, псевдослучайная. Ну повторится через миллиард лет - сильно легче стало? ;)

Проблема не в том, когда она повторится. А в том, что размер ключа уменьшается с длины сообщения до содержимого QR-кода, и весь смысл Вернама пропадает.

В qr код помещается 7000 цифр. Этого достаточно для seed-последовательности. А без знания последовательности псевдослучайность ключа ничего не даст.

Тут другой вопрос интересный, как генерируется эта последовательность. Если тоже псевдослучайных генератором, у которого seed зависит, например, от серийного номера и от времени.. Или просто известен кому надо .

А в чем проблема псевдослучайности на телефоне? Мне кажется там достаточно датчиков с которых можно снимать показания, для генерации не абсолютно, но достаточно случайных чисел.

Вот именно. Емнип, в openssl был баг с ослаблением гпсч. Это в проекте с открытым кодом А что может быть наверчено в смартфоне?

в определениях теории шифрования - генерация этой псевдослучайной последовательности по seed - становится частью алгоритма шифрования. который может быть сам по себе скомпрометирован

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

в случае перехваченного seed - тривально

в случае не перехваченного seed - ваш алгоритм превращается в задачу взлома ключа, который теперь не вся последовательность, а этот самый seed. что скорее всего будет работать хуже чем стандартный AES, по причине что никто серьёзно не исследовал такой механизм на устойчивость ко всяким там частотным, rainbow и тп атакам

с энтропией обычный XOR Вернама + псевдослучайная последовательность от сида напортачит точно гораздо сильнее, чем нормальный AES. а да, и ещё вам нужно где-то найти генератор псевдослучайных чисел который на вход такой длинный seed принимает. это не тривиальная задача так-то, существующие псевдослучайные алгоритмы на гораздо более короткий seed заточены

в любом случае - вы точно сломали исходный смысл шифра Вернама

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

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

да, и не только такой вариант. аппаратные генераторы истинной энтропии вполне себе существуют. правда все довольно сильно ограничены по объёму энтропии которую они могут генерировать в единицу времени, и это чаще всего сильно меньше чем скорость с которой /dev/random на гора руду выдаёт

а для Вернама с учётом потребностей шифрования мультимедийной информации чаще всего катают на флешки/блюреи ключи в десятки гигабайт и передают физически

в случае перехваченного seed - тривально

Конечно. Но в предложенной схеме seed торчит наружу только в qr коде, а мы его никому кроме того кому нужно не показываем.

А сделать генератор с длииинным seed вопрос чисто технический. Теория для подбора коеффициентов в полином есть. Другое дело, что особого смысла в этом нет. Даже 256 бит ключ брутфорсом не подбирается

Конечно. Но в предложенной схеме seed торчит наружу только в qr коде, а мы его никому кроме того кому нужно не показываем.

да, но вы зачем-то сломали при этом нормальное шифрование, заменив его на Вернам+ГСПЧ по сиду. хотите хоть какой-то доказанной безопасности - передавайте через QR вместо сида нормальный ключ шифрования от нормального алгоритма

А сделать генератор с длииинным seed вопрос чисто технический. Теория для подбора коеффициентов в полином есть

не криптостойкий ГСПЧ в теории будет ломаться не брутфорсом а частотным анализом. существующие алгоритмы ГСПЧ с длинным seed являются не криптостойкими

вывод: использовать для шифрования нужно не самоделку из XOR+ГСПЧ+seed, а либо настоящий шифр Вернама, либо нормальный алгоритм шифрования сделанный под конкретную длину ключа

на применении самоделок в шифровании как раз и протекают от большого ума, если настоящим профи вдруг нужно будет реально ваш шифр крипто анализировать

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

ну корень квадратный из 1024 битного ключа это 32

значит qr с размерами от 32x32 квадратика уже вполне подойдет

а они и побольше бывают

размер ключа уменьшается с длины сообщения до содержимого QR‑кода, и весь смысл Вернама пропадает.

Берём файл, заполненный случайным шумом, размером пару терабайт. Файл есть у Алисы и Боба, и его нету у тащмёра. Алиса передаёт Бобу: в QR‑коде: «стартовый оффсет в файле 12 345 678, шаг 23 456». Боб берёт из файла, начиная с 12 345 678-го, каждый 23 456-байт. Как там «размер ключа», сильно уменьшился?

А файл тоже qr кодом передавать?

Да хоть по RFC 1149!

А нафига тогда QR код вообще? Если у обоих есть файлик, то начинайте с нуля. Все дополнительные телодвижения никакой секурити не улучшат (а то и ухудшат).

Если у обоих есть файлик, то начинайте с нуля.

А головой подумать?

Если начинать с нуля, то если тащмаёр наложит потные волосатые лапы на зашифрованный файлик и тот самый многогиговый файл, то расшифровать будет тривиально. А чтобы найти заранее неизвестные (тащмаёру) стартовое смещение и шаг, ему придётся сдлелать в среднем (длина многогигового файла^2)/2 попыток.

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

Перебрать все возможные смещения сильно проще, чем вы думаете.

«Мне не надо бежать быстрее медведя — мне надо бежать быстрее тебя» © Мне не нужен шифр, котоорый придётся вскрывать 100 500 лет — мне вполне достаточно 200–300, а там «кто‑нибудь да сдохнет: либо ишак, либо падишах, либо я» ©

Окай, давай считать. Допустим у тебя 10 гигов файл и килобайт текста. Задача преобразовать текст 10 миллионов раз и навскидку проверить получившееся на осмысленность. Какие-то маркеры типа заголовка архива, слов общеупотребимых и прочего.

OTP это обычно простой XOR, расшифровка на p3 - около 10 Гб/cек. То есть за секунду мы можем расшифровать в общем то все варианты. Плюс тривиальные проверки ну еще ЧАС (и это оооооооочень прям высокая оценка). Итого 200-300 лет у тебя банально нет.

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

стартуйте с нулевого байта с шагом 1

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

qr код в лучшем случае ничего не изменит, в худшем можно напортачить с повторными использованиями

Однако в случае последующей компрометации файла оффсет и шаг позволяют сильно увеличить пространство перебора для атакующего.

в случае компроментации файла, там задача уже не к перебору сводится

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

учитывая что у вас шифрование не раундовое а XOR от Вернама, в комбинации с rainbow таблицами общий шифр будет шикарно протекать по частотностям

p.s. но даже без rainbow (которые нужны для раундовости, как во взломе md5, например), если конкретно - пространство перебора при неизвестном seed в случае брутфорса сводится к поиску двух констант как понимаю - оффсет и шаг. перемножение этих двух чисел вроде как сильно меньше выходит, чем длинна нормального ключа шифрования. а файл просто помещается в оперативку и используется как справочник при взятии XOR итоговых проб от данных

rainbow таблицы

Которые будут храниться... храниться будут... а где они храниться будут храниться, с учётом того, что вариантов-то чуть менее, чем овердофига?

Наоборот, теперь у вас ключ длиной в пару терабайт, который надо заранее передать Бобу.

Ну так в том-то и ЩАСТЬЕ, что его можно передать сильно заранее — а без того оффсета/шага он сам по себе бесполезен.

шаг и оффсет легко подбираемы если файл известен а итоговый алгоритм - не раундовый XOR Вернама. выше описал

шаг и оффсет легко подбираемы если файл известен

Какой файл? Если тот, который шифровали — то зачем тогда вообще что-то подбирать, ведь он уже известен; а если файл со случайным мусором — то остаётся вопрос «а как понять, что мы вот эта куча байт, которая получилась после XOR при офсете X и шагом Y — это реально то, что скрыть пытались?»

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

Использовали блок - занулили.

Смысл то как раз есть. Сегодня Боб уезжает за границу и ему нужно будет там получать сообщение от Алисы. Вот сегодня он забирает у Алисы шифрблокнот, а сообщения будет получать уже потом. Может и по открытой связи :)) Хрюкостяг!

Надежный способ аутентификации (не RSA).

С каких пор RSA это способ аутентификации?

Перечисление кому пригодится это ПО, а кому вы его "не продадите" выглядит как-то неправильно. Вспоминается история какого-то популярного проекта который Ричард Столлманн отказался причислить к свободному ПО (FOSS) потому что там была фраза с примерным значением "это ПО не может быть использовано для злых целей". Сапожник вроде как не должен интересоваться тем что выше сапога.

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

Мем с чуваком возле карты с безумным взглядом.джпг

Да это в целом не выдуманная история о которой невозможно молчать

Партнеры встречаются (можно на 5 секунд) – один показывает QRcode на экране, второй – считывает. Все. И далее на обоих устройствах генерируется (идентичная) длинная последовательность.

Если "устройства" это смартфоны уважаемых эффективных топ-менеджеров(а на практике так и будет!), то можно рыдать и смеяться одновременно. Тем более, что далее автор видит свой криптостойкий месседжер, как приложение под массовые смартфоны(ха-ха-ха).

А что не так? клиенты с деньгами. Зовите чуваков из маркетинга, пусть объяснят, за что деньги платят

Ошибка криптофаната: думать, что "никто не прочитает" в требованиях - это буквально "никто". А фактически это значит "сисадмин конкурентов", "жена" или "тот чел, которого надо втихаря уволить". Защита от ФСБ, ЦРУ и Моссада не нужна почти никому (а кому нужна, те сами её обеспечивают).

Отсюда вытекает дичайшее переусложнение UX, потому что нельзя сделать И удобно, И секурно одновременно. А пользователи не понимают, почему они должны так страдать только ради того, чтобы конкурент Карэн не узнал, что они собираются закупать кабачки не по 12, а по 15 вопреки их картельному сговору.

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

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

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

(c) Брюс Шнайдер

А по факту все очень печально с шифрованием у вас - алгоритм Вернама одноразовый блокнот криптостоек ровно настолько, насколько случайна гамма-последовательность. У вас ее случайность гарантированно не больше количества битиков в qr коде. В итоге вместо абсолютно криптостойкой системы получаем велосипедный потоковый шифр с крайне сомнительным характеристиками

Вероятные причины провала продаж.

3 причина - По какой причине потенциальный клиент должен Вам доверять?

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

Простите, а что конкретно гарантирует, что после обмена QR-ключами, снегенированные ключи доступа не были скомпрометированы? Или что к абоненту на другом конце "провода" не подключен терморектальный криптоанализатор и он не по собственной воле предоставляет свой правильный отзыв?

обязательно должны заинтересоваться криминальные структуры, но им я не продам технологию

Приходит к вам такой джентельмен и говорит: "Здравствуйте. Я криминальная структура. Ищу мессенжер, устойчивый к взлому."

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

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

В «Криптономиконе» герои тоже переписывались через открытые каналы связи, но передавали зашифрованные сообщения с помощью GPG. Вообще раньше многие так и делали — хоть на заборе пиши, если у тебя ключ от GPG...

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

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

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

А флешку каждому новому корреспонденту голубями отправлять будете? Если масштабировать эти одноразовые блокноты на Х людей, то проблема распространения ключей станет не такой тривиальной, как встретиться и КуАр кодом светануть. Это я ещё не упоминаю про ключи парно-выборочной связи.

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

простейшее гаммирование..

Есть такой фильм, "Zero dark thirty" (в переводе назвали "Цель номер один"), об охоте на Бин Ладена. Кстати, рекомендую, как я понимаю, работа спецслужб показана относительно реалистично. Так вот, ЦРУ обнаруживает, что человек, которого считают персональным связным Бин Ладена, регулярно бывает в некоем доме в Пакистане. За домом устанавливают наблюдение и идентифицируют всех, кто в нем проживает, кроме одного мужчины. Этот мужчина никогда не выходит на открытое пространство (гуляет только под навесом), весь мусор, который хотя бы потенциально может содержать образцы ДНК, утилизируется на территории усадьбы, на канализацию поставлен специальный фильтр, после которого не остается достаточно клеток эпителия (пардон за подробности), пригодных для выделения ДНК и т.д. После полугода усилий ЦРУ констатирует, что установить личность этого человека невозможно, но! Сам факт экстраординарных мер безопасности указывает на важность этого человека. В итоге организуется рейд SEAL.

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

Просто нужно было после фильтрации подмешивать клетки эпителия другого человека)

Это было бы неким аналогом стеганографии )

я видел фильм который начинался точно также) Гаттака

на канализацию поставлен специальный фильтр, после которого не остается достаточно клеток эпителия

А вот с этого момента поподробнее, пожалуйста. Демон Максвелла, что ли?

Да просто мелкий фильтр, который потом сжигается.

Это что ж за фильтр такой, что молекулы ДНК способен задерживать?

Зачем молекулы? Клетки. ДНК из клеток вроде как не выпадает.

ДНК из клеток вроде как не выпадает.

Зависит от многих факторов. А её много-то и не надо, PCR свидетель.

Непонятно, чем автора не устроило банальное асимметричное шифрование из того же openssl или там GnuPG, а обменяться открытыми ключами можно было бы так же через QR-код.
И гонять сообщения хоть через ту же банальную почту.

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

Партнеры встречаются (можно на 5 секунд) – один показывает QRcode на экране, второй – считывает. Все. И далее на обоих устройствах генерируется (идентичная) длинная последовательность.

Надеюсь, содержимое QR-кода и алгоритм генерации псевдослучайного ключа -- это не всё, что нужно для его генерации? Иначе вы фактически уменьшаете ключевое пространство до числа различных QR-кодов данной длины.

Это всё равно значительно больше, чем длина любого используемого сейчас ключа.

а не подскажете алгоритм генерации псевдослучайного ключа который у вас на вход такой длинный seed принимает?

а вы в курсе, что все существующие алгоритмы ГСПЧ протекают на определенных порядковых уровнях анализа истинности их энтропии?

https://ru.wikipedia.org/wiki/Тестирование_псевдослучайных_последовательностей

и что никакие алгоритмы ГСПЧ ключи длиннее чем используемые для шифрования в нормальных алгоритмах шифрования уж точно прожевать не смогут

а не подскажете алгоритм генерации псевдослучайного ключа который у вас на вход такой длинный seed принимает?

Генератор фибоначчи с запаздыванием может принимать сид любой длины, если подстраивать параметры генератора под эту длину.

imho метод Фибоначчи с запаздыванием не является криптографически стойким ГСЧ, он применим для статистических исследований, но не для криптографии

https://ru.wikipedia.org/wiki/Метод_Фибоначчи_с_запаздываниями

https://ru.wikipedia.org/wiki/Криптографически_стойкий_генератор_псевдослучайных_чисел

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

На самом деле достаточно всего нескольких наборов таких чисел. Например, ключ длиной 70 тысяч символов, а у тебя есть хорошие числа на запаздывание в миллион. Создаёшь буфер на миллион, заполняешь нулями, в конце сид, или просто циклично сидом. Вырабатываешь несколько миллионов чисел для перетряски, и вуаля, можно пользоваться.

а мужики то не знают. sarcasm

думаю вы слишком поверхностно к криптографической стойкости относитесь. дело не в длине ключа а в том как сделать, чтобы псевдослучайные последовательности были апериодическими

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

Во-первых стоит избегать излишних обобщений типа "любого используемого".

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

вот правильно

Уговорили ;) Берите из qr кода 256 бит, остальное можно пустить на рисунок в коде ;)

Это всё равно значительно больше, чем длина любого используемого сейчас ключа.

А QR-код истинно случайный, получен чтением какого-то шума?

От реализации зависит

Если это был стёб, то браво - было смешно читать и горько, что столько народа на него повелось.
Если не стёб, то по-прежнему смешно, но горько теперь дважды..

Мне кажется надо дальше общаться с клиентами, чтобы это продавать.
Как минимум - откуда доверие что какая-то контора говорит что это безопасно? Мне кажется тут помогли бы исходники на github. И то - нужна какая-то система верификации что приложение собрано из этих исходников.

Проблема в маркетинге. Без рекламы и удобного UX любое приложение обречено

Много лет использую связку mutt+gnupg, а какой там e-mail провайдер - дело десятое, хоть тот же б-го мерзкий мейлру. Gnupg/pgp поддерживают практически все вменяемые почтовоые клиенты, на том же ведре прекрасно работает К9.

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

Лет десять моя почта автоматически подписывается gpg, и за это время отправлено 0 шифрованных писем. Большинству людей это не нужно. Основной риск для большинства - то что респондент опубликует переписку или процитирует немногим конкретным людям. И как вы догадываетесь - алгоритм шифрования тут сбоку.

Большинству людей вообще мало что нужно, кроме хлеба и зрелищ, увы.

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

Уважаемый автор, если Вы серьёзно, то я Вам очень рекомендую хотя бы Стэнфордский курс Cryptography I для начала на coursera прослушать. Боюсь, пока что Ваша статья выглядит как антиреклама Ваших консультационных услуг.

И я почему‑то уверен, что мало кто из читателей этого текста знает что такое алгоритм Вернама. (По крайней мере, я не знал).

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

Да и среди читателей хаба "Криптография" наоборот, уверен, единицы не знают, что это такое и как оно работает...

До последнего думал, что это какой-то прикол, такая комедизиация очевидного под видом истории. Но, судя по комментария и профилю, автор на полностью серьезных щах все это и делал, 4 года поддерживал приложение в маркете и серьезно рекламирует свои услуги. Сильно!

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

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

«Поэтому, вторая задача — сделать из псевдослучайной последовательности истинно случайную (или максимально приблизиться к этому).
Эту задачу я тоже решил.»

Вы батенька на Нобелевку замахнулись, напишите другу нашему Кнуту, а то он лох три Рома написал а нормальный алгоритм генерации случайных чисел не придумал. Вот лошара …

Ваша ошибка в том, что перед попыткой продать идею, ну точнее даже уже решение на базе идеи, не утрудились исследовать потенциальную ЦА. А её просто нет. Мессенжер где можно общаться только с лично знакомыми не нужен в принципе почти никому. Если перед людьми ставится задача обеспечения секретности переписки, то обычно им уже и выдают сертифицированные инструменты, это обеспечивающие. Причём шаг вправо шаг влево - расстрел. Если это какие-то доморощенные шифропанки, то и для них уже есть десятки готовых открытых и довольно массовых решений, и доверять анонимусу они не будут.

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

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

Вообще сейчас существуют мессенджеры с открытым исходным кодом, криптостойкими алгоритмами e2e шифрования и как собственными серверами, так и существующими сторонними. Пример matrix/element. Бери и пользуйся. Да, возможно спец. службы смогут прочитать это (а может и нет, фактов прочтения нету). Но только они. А в случае их интереса мессенджер не спасет. Так что изобретение, по передаче файлов через дропбокс в принципе взлететь не могло :)

Я как-то сделал свой мессенджер на Вернаме. Но блокнот передавался по nfc. Про проблему передачи шифроблокнотов хорошо написано у Масленникова в «Криптографии и свободе».

А можно вкратце основной вывод? Там что-то ещё есть кроме проблемы предварительного обмена ключами, огромного размера ключей, невозможности повторного использования и отсутствия аутентификации?

Предполагаемую ЦА можно поделить на 2 большие категории: любители и профи. Для первых такая секретность избыточна, подойдёт и любое шифрование на AES с последующей отправкой по любому каналу. Для вторых недостаточна: никак не исследовались атаки по побочным каналам - автор ошибочно считает среду смартфона доверенной. Можно посмотреть, как заморачиваются люди, чтобы сделать хороший крипто кошелек. Потом хорошо бы это отдать другим людям на проверку, что все сделано правильно. В результате можем получить защищённость ниже, чем у имеющихся решений. Тут можно вспомнить недавнюю историю по квантовому распределению ключей с китайского спутника: математически доказанный стойкий алгоритм, но утечка по побочному каналу все усилия множит на ноль.

Предполагаемую ЦА можно поделить на 2 большие категории: любители и профи

На три. Ещё есть... ну пусть будут "энтузиасты". Это такая достаточно заметная промежуточная группа, которая, с одной стороны, по факту имеет те же самые потребности, что и любители, но с другой стороны, исключительно по причине "я хочу иметь the best" выдвигает достаточно высокие требования как профи, а с третьей стороны, не имеет достаточно квалификации, чтобы осознать, зачем им это надо, а также отличить качественную реализацию от фейковой.

Я так и не понял почему не придерживаться стандартной схемы: обмен ключами, создание общего ключа. Если rsa не нравится, то постквантовый kyber. Если доверия нет к aes 256 gcm, то взять 512 битную версию. Если есть сомнение в том, что есть какой-то способ по части текста узнать весь текст, то можно маску на текст наложить или кодировать особым способом содержимое перед шифрованием.

По сути именно шифр Вернама успешно применялся в ПВО СССР в середине 80-х для некоторых особо секретных телеграфных направлений. А вот источником белого шума для ключей был обычный стабилитрон. Отсюда вопрос. Почему автор отказался от столь простого и доступного метода получения случайной последовательности?

Куда в смартфоне вкрутить обычный советский стабилитрон? ;)

Например, через WiFi/Bluetooth от ESP32 или USB от STM32 или RP2040.

Стабилитрон подойдет любой.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации