Pull to refresh

Comments 196

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Казалось бы, xor с шумом и будет вам щасьтье. А вот и нет

Конечно: не "казалось бы", а " доказано, что ". Если под счастьем понимается невозможность расшифровки (или иного извлечения информации), шум случаен и не короче сообщения. Это собственно и есть " одноразовый блокнот".

В букваре есть пример с картинкой в формате BMP

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

Ни первое, ни тем более второе, не про "xor с шумом"

там как бы достаточно очевидно по описанию, что за BMP

это уже ближе к атаке с известным текстом :-)

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

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

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

Так ГСЧ или ГПСЧ? А какой???

А то я в детской школе на бейсике наваял программку, которая в бесконечном цикле на экран точки-звезды в случайные места кидала. Сначала все было очень красиво, а минут через 10 на экране нарисовались диагональные полосы. Я тогда прифигел, и добавил третий вызов, теперь не только X c Y, но и цвет (точнее, яркость 0-7) выбиралась случайно. Ну ок, полосы образовались, условно, через 15 минут и теперь были с градиентом...

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

Сначала все было очень красиво, а минут через 10 на экране нарисовались диагональные полосы.

Ваша фамилия случайно не Максимов?

нет, независимый исследователь :-D

и "НиЖ" у нас не было, максимум "ЮТ". И жили мы в Подмосковье, а не в столице. Но зато в школе были крутые двупроцессорные компьютеры УК-НЦ и европейский Бейсик из самого Вильнюса, а не этот подозрительный Фокал!!!

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

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

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

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

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

Да, кстати, полезное применение этого блокчейна. Правда в средний смартфон оно не влезет.

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

да какой к слонам Вернам? тут кроме рекламы "покупайте наших вернамсяких слонов" ничего про криптоблокноты нет. Вы-то сами что пишете,

 что его куаркоды на экране

То есть вы сами уже забили на "вернамскую" тему и обсуждаете N+1-й чат с шифрованием и с "хочу просто и удобно"

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

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

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

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

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

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

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

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

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

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

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

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

ГОСТ или AES вполне подойдут. Наверное их могут взомать соответственно ФСБ и ЦРУ.

Ну ГОСТ поверх AES тогда уж, чего мелочиться. Или наоборот.

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

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

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

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

как и в KPI братков/революционеров на зоне, так что тут еще вопрос, что в итоге лучше

У этого метода есть вполне себе название-термин: "терморектальный криптоанализатор". Стойких ключей не существует в принципе.

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

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

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

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

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

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

не только, потом его еще надо хранить, чтобы не нашли, но при этом и не потерять

условно, "пустой телефон в коробке прям из магназина" уже через границу США не провезёшь, пограничники спросят, а что тут у вас за файл secret_gamma.dat размером с 3/4 флэшки телефона?

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

Кстати, когда я в разгар ковида летал в Россию хоронить отца, свежекупленный по такому случаю телефон ни разу у меня не попросили потрогать — ни в России, ни в Штатах. Даже обидно как-то.

Если в вашем телефоне вдруг начинают анализировать файловую систему - вы уже спалились

Если в вашем телефоне вдруг начинают анализировать файловую систему - вы уже спалились

Именно!

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

в виде заполнения пустого места на флешке, через dd

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

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

И оптимистичный потом сценарий, что пожилой усталый пограничник, которому русские шпионы надоели, как тот парашютист сельсовету, покачав пыльным шлемом старого байкерского клуба, просто почистит вам кошелек и купит вам обратный билет v Moskva.

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

Если пограничники вдруг начали взламывать ваш телефон и несколько часов анализировать разметку памяти - что-то пошло не так. Что-то выдавало в Штирлице разведчика - то ли шапка с красной звездой, то ли автомат ППШ в рюкзаке, то ли волочащийся сзади парашют.

А если у Штирлица в багаже китайская флешка на 2Тб?

Мне кажется, для быстрой выборочной проверки "пустого" пространства хватит sh-скрипта, который по ADB закачается и за несколько минут отработает. Быстрее, чем проводится "интервью" с человеком. Было бы желание.

А вот имеет ли смысл делать "на потоке" тотальный скриннинг всех туристов - тут правительству США решать, не знаю

А если у Штирлица в багаже китайская флешка на 2Тб?

То же самое, вставил в подготовленный комп - он параллельно с "интервью" проверил. Вроде в них TRIM тоже

Cheap USB mass-storage tend not to; newer UAS (USB-attached SCSI) can usually accept TRIM.

Вот сооовсем старые, размером в десятки и сотни МБ, там может и реальный мусор лежать. Но они и сами по себе подозрительны

хватит sh-скрипта

Наверное надо ещё и телефон с root... а если у человека ключ обычный 2048 битный RSA, спрятанный где-то в стеганографии? скрипт обломится.

вставил в подготовленный комп

китайские флешки, мало что сцуко медленные, так ещё контроллер пропатченный; показывает размер не тот что есть а тот что надо.

так ADB-же, просто ADB? и вообще, рутовать вроде нонче не модно уже, ставится просто Shizuku, которая сама себя ADB-шит через топку локалхоста

если у человека ключ обычный 2048 битный RSA

...то это уже не Вернам, а совсем другая тема :-)

так ещё контроллер пропатченный; показывает размер не тот что есть а тот что надо.

Ага, лежит у меня несколько таких красавиц. Причем, реально корпуса симпатичные, аж жаль. Но кажется мне, что

  1. если уж у китайских продавцов к таким контроллерам есть прошивки с исходниками, то и у ФБР они будут. Тем более прочитают всю внутреннюю информацию, кто когда куда писал, которую на уровне ОС/ФС не получишь. Также и конторы по вытаскиванию данных с битых дисков - у них тоже средства потрошения прошивок есть, не так уж много этих контроллеров в природе

  2. если у тебя одна такая флэшка - то посидишь в коридоре ночку, подождёшь пока станочек справится. А если целая коробка, то лучше бы ты сразу с собой взял ППШ застрелиться :-)

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

Вот тут ничего не понял. Почему некто, рассказывающий в интернетике о своём личном опыте, вызывает у Вас такие жЮткие ощущения?

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

Во-первых, если бы они были предусмотрительны, они бы это сделали. Но по факту мой телефон не покидал моих рук.

до полного исчерпания df, а потом сотрут. Им не жалко, а вам... жалко, но не признаетесь.

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

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

А с каких пор "неиспользуемые" сектора обязаны быть забиты нулями? Может, это мусор от файла, который там раньше был?

купит вам обратный билет v Moskva

Так я в Москву и прилетал, зачем мне ещё один билет туда?

В общем, я понимаю, что чукча — не читатель, но вообще-то ya amerikanskiy grazhdanin.

А с каких пор "неиспользуемые" сектора обязаны быть забиты нулями? Может, это мусор от файла, который там раньше был?

С того времени, как появился TRIM

Не знать про это довольно странно, потому что физическая порча SSD от самих процессов чтения и записи известна давно и широко.

Также как и Shingled Magnetic Record диски, кстати, если не только про телефоны говорить.

Раз вы линуксоид, то вам возможно известнее были JFFS и YAFFS, но они давно заброшены, поскольку не масштабируются. Вот в них да, "свободных" секторов как таковых не было вроде, были только старые снэпшоты, которые постепенно подъедались сборщиком мусора. В обычных же ФС освобождаемые сектора реально освобождаются, вместе с содержимым.

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

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

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

Так то при личной встрече можно нагенерить пару Гб случайных ключей, для текстовых сообщений этого хватит лет на 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 кодом передавать?

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

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

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

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

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

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

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

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

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

Так вопрос не в том, что «XOR работает быстро» — вопрос в том, что понимание «а является ли то, что получилось в результате, тем, что тащмайор ищёт» является медленным.

Спешу огорчить - не является, если это не уникальный и редкий формат файла. Это очень быстро и очень параллельно делается. Задача проверить по известным смещениям совпадения сигнатур для определения архивов, картинок, документов. Плюс если это plain text задача по нахождению каких то осмысленных слов (поиск подстроки в строке).

задача по нахождению каких то осмысленных слов

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

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

То есть файл шифрованый.

Зачем сразу «шифрованный»? Зазипуйте — и будет Вам ЩАСТЬЕ.

Это ничем в целом не отличается, если у вас свой алгоритм сжатия со своими сигнатурами, то это в общем случае вполне подходит под шифрование.

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

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

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

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

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

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

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

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

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

rainbow таблицы

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

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

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

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

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

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

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

Если вы шифруете зашифрованный файл, то в OTP смысла нет.

Элементарно, Ватсон! Шифруете файл любым алгоритмом с любым заранее оговорённым ключом (например, "111") — именно чтобы получить невнятную кучу байт без явных признаков, что это именно то, что атакующий ищет — а уже потом делаете XOR вышеописанным методом.

как насчёт просто нормально зашифровать нормальным ключом?

А зачем тогда второй раунд шифрования? AES вполне достаточно для того, чтобы примерно никто не смог это открыть. И не надо передавать гигабайты непойми как и не надо изобретать велосипеды.

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

Если вы шифруете зашифрованный файл

А если я его заgzip-ую? Та же самая задача — сделать так, чтобы данные не имели распознаваемых последовательностей — вполне решается

*

Прекратите уже придуриваться: сигнатуру1F 8B можно элементарно переписать.

Да, можно все поменять, написать свой алгоритм архивации со своими сигнатурами и так далее... Уровень "из буханки хлеба можно сделать троллейбус".

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

Вы упускаете из виду один момент: для взлома (или попыток взлома) стандартных средств существуют стандартные же тулзовины по пять копеек пучок. Но если условного тащмаёра приветствует Н.Е.Х., то его жизнь сильно осложняется.

НЕХ это готовый красный флаг, сюда стоит обратить внимание. А если НЕХ используется не только Алисой и Бобом, но и на каждом втором смартфоне - это уже не НЕХ ;)

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

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

...а сообщения будут получать пограничники США, которые на границе этот шифроблокнот найдут и заберут (или сделают себе копию)

Ну классика же, Гестапо или наоборот НКВД вламываются к разведчику, обстукивают пл и стены, и тут им на голову из-под фальш-потолка падает радиостанция как раз с теми самыми шифр-блокнотами

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

а что там еще будет написано, "Война и Мир" ?

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

что гораздо меньше энтропии, чем в блокноте

...осталось только самая мелочь: правильно угадать эти два числа.

Ну так это займет не 1 млрд лет, а всего лишь 1 млн лет.

«...либо ишак, либо падишах...»

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

я же, по крайней мере в этой статье, хотел бы остаться в рамках "Вернам ли это?" и "Практична ли схема Вернама?"

Надежный способ аутентификации (не 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. Про проблему передачи шифроблокнотов хорошо написано у Масленникова в «Криптографии и свободе».

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

Там про 8-е главное управление КГБ СССР, про его подразделение - управление "Б". Которое занималось исключительно генерацией ключей и их передачей. Огромная инфраструктура, которая впоследствии стала ФАПСИ. Собственные спутники, закрытые линии связи, фельдегерьская служба, Ватутинки, отдельная от внешней разведки служба чисто для передачи добытой информации. Естественно, одноразовые блокноты использовались не для передачи сообщений, а для передачи долговременных ключей. И дикие организационные проблемы, когда центральный банк, например, слез в 1992-м с ключей управления на свои. Почитайте, исключительный текст, слепок эпохи.

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

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

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

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

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

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

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

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

Если бы что-то подобное потребовалось мне, то я бы для основы использовал S.S.E (использую как сейф паролей) для шифрования текста или файлов, с каким-нибудь blowfish 448 bit или Paranoia C4, а для передачи зашифрованного использовал бы тот же Telegram. Можно и почту.

Пароли шифрования либо лично передать, либо по иному, относительно защищённому, каналу связи.

Для 99% людей такого достаточно за глаза. Не удобно, но применимо, если прям очень надо.

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

В общем, нишу вы выбрали очень узкую. И всё очень усложнено. Тот же мой путь сильно проще в применении, хотя конечно слабее.

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

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

Blowfish 448 bit: 11223344

uAdE0gNpGgxBS5aOtRe]R107dzN534lBLUfD]sJpCpZ99ZWEftjQyWYUJBnkcz96ZyWqHqCIj5PZT)pX]fOONQEQf8CtA35ETBlCKKXzM3oCEU0VwzQm49vZDPA7ASQJgQrA86E3FwmlxwoPNbvUidaz9zNfyr5ayX7Rew7GRjf7egOwGIyhu]Qxt68zFuC0jHrUSDB6KTCdwtRa9a9T7k)J59SHOvI2eZRWn7Y!

При этом у вас будет полная уверенность в том что в коде нет «закладок» (ведь код будете писать вы или ваши доверенные программисты).

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

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

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

Если не знаешь, как это работает, то, скорее всего, тебя наебывают.

Генерация случайной последовательности — отдельная задача.

Блин, Вы не поняли видимо ничего про то, о чем писали статью.

Нужна не псевдослучайная последовательность, а СЛУЧАЙНАЯ - то есть должен быть очень хороший генератор случайности, который вообще сам достаточно сложно достать в природе.

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

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

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

Что касается псевдослучайной последовательности. Я, ради эксперимента, смотрел распределение байт генератора случайных чисел web crypto (он реализован в браузерах и доступен через js). Так вот на 1000 байт ещё отклонения в частоте появления заметить можно. А вот на массиве из 15 миллионов байт, то частота появления примерно одинакова. Я вот и думаю, что может сначала следует получить массив с приемлемой частотой появления, и потом уже из него выбирать случайные, например, 16-32 байт для ключа. Буду рад если поделитесь рассуждениями по этой теме.

А вот на массиве из 15 миллионов байт, то частота появления примерно одинакова

Вот мой генератор случайных чисел: 0, 1, 2, 3... 254, 255, 0, 1, 2, 3...

Частота появления байтов абсолютно одинакова, абсолютно достоверный белый шум. Где моя нобелевка :)

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

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

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

Суть в следующем: одна частица с определённым квантовым состоянием разделяется на две, и это разделение происходит случайным образом. Одну из этих частиц передают получателю. Когда получатель измеряет её состояние, он тем самым инициирует (коллапсирует) частицу в конкретное случайное состояние. Но поскольку обе частицы изначально были связаны (находились в состоянии квантовой запутанности), их состояния оказываются скоррелированными на обоих концах канала.

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

«Абсолютное шифрование — иллюзия. Любая защита — лишь вопрос цены, времени и решимости атакующего.»

Все так, я все жду когда старые кошельки биткоин можно подбирать пароли?

Там всего 160 бит вроде энтропия.

Dan Boneh cryptography 1 (with distinction)
Первое о чем там говориться, это Алгоритм Вернама, это база, без которой никуда.

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

Впрочем, на этом ресурсе встречал кадров, которые структурированные данные шифровали ассиметричными алгоритмами.

Рейтинг голосования для меня до этого момента что-то значил. А что теперь?

Sign up to leave a comment.

Articles