• XSS.stack #1 – первый литературный журнал от юзеров форума

Вопросы по блочному шифрованию

В первом случае, с определенной вероятностью, мы можем отсрочить обноружение и отсортировать файлы по приоритетным расширениям.
Во втором случае таких возможностей нет, но зато не придется создавать внешних файлов для храниния таргетов
Ты сразу при переборе директорий можешь фильтровать выдачу, найти сначала приоритетные расширения, апишки винды позволяют это делать, с фильтрами при энумерации директорий и файлов у тебя будут пропускаться файлы(расширения), которые не нужны, а вторым проходом можешь уже накрыть файлы из остальных неприоритетных расширений
Либо ты можешь делать это параллельно в двух потоках, но первому потоку дать больший приоритет, а второму намеренно его занизить, и повесить колбэк, что бы когда у тебя первый полностью отработает все приоритетные расширения, вернуть второму потоку нормальный приоритет работы
 
И даже тут я бы его не рекомендовал, так как он медленный, удобный но медленный, есть более быстрые библиотеки, с хорошей релизацией. Я сравнивал чачу из mbedtls и cryptopp, последний проигрывал примерно на 30% в скорости
А без библиотек не пробовал делать?
 
А без библиотек не пробовал делать?
А зачем ? Реализация чачи это строк 500-700, с моим опытом я смогу это повторить, у меня бывали проекты и по 30к строк кода, живой, и с трезвой головой))
Вопрос в другом, стоит ли рисковать безопасностью, подвергать риску надежность криптосистемы? Человеческий фактор штучка та еще. Вон у локбита кодер свою реализацию чачи сделал, а потом оказалось, что он там кучу багов оставил, и пришлось ему выплачивать обещанные 50к за багбаунти, хорошо, что это не был критичный баг, который мог бы позволить дешифровать файлы.
Просто для себя для галочки - можно, но времени на это у меня нет, да и желания особо тоже.
Я предпочту использовать готовые криптолибы, которые прошли все проверки и сертифицированы на мировом уровне.
 
Ты сразу при переборе директорий можешь фильтровать выдачу, найти сначала приоритетные расширения, апишки винды позволяют это делать, с фильтрами при энумерации директорий и файлов у тебя будут пропускаться файлы(расширения), которые не нужны, а вторым проходом можешь уже накрыть файлы из остальных неприоритетных расширений
Либо ты можешь делать это параллельно в двух потоках, но первому потоку дать больший приоритет, а второму намеренно его занизить, и повесить колбэк, что бы когда у тебя первый полностью отработает все приоритетные расширения, вернуть второму потоку нормальный приоритет работы
Ок, попробую пока так. Спасибо!
 
Вопрос в другом, стоит ли рисковать безопасностью, подвергать риску надежность криптосистемы?
исходники готовых реализаций, оптимизированные. варианты avx, avx2, avx512, sse, ni. на любой вкус.
Я не думаю, что реализацию intel можно уличить в риске надежности криптосистемы.
 
Я не думаю, что реализацию intel можно уличить в риске надежности криптосистемы
А никто Intel и не собирался уличать в ненадежности, я лишь сказал что самостоятельно не намерен писать реализацию AES или ChaCha, потому что слишком высок шанс, что я сделаю что-то не так, как следовало бы
 
А никто Intel и не собирался уличать в ненадежности, я лишь сказал что самостоятельно не намерен писать реализацию AES или ChaCha, потому что слишком высок шанс, что я сделаю что-то не так, как следовало бы
я об этом не говорил. ты привел mbedtls и cryptopp, я свой вариант, более оптимизированный.
 
я об этом не говорил. ты привел mbedtls и cryptopp, я свой вариант, более оптимизированный.
Твой вариант я не проверял, сказать ничего не могу, но уверенно могу сказать про mbedtls и cryptopp, потому что сравнивал именно их, и только чачу и AES, другие алгоритмы не проверял
А вообще криптолиб сертифицированных достаточно много существует, так что что бы полную картину иметь по скоростям, нужно сделать тесты
 
Твой вариант я не проверял, сказать ничего не могу, но уверенно могу сказать про mbedtls и cryptopp, потому что сравнивал именно их
А вообще криптолиб сертифицированных достаточно много существует, так что что бы полную картину иметь по скоростям, нужно сделать тесты
Я тестировал. Просто так я бы не предложил.
 
Я тестировал. Просто так я бы не предложил.
У них скорее всего за счет оптимизаций на расширенных наборах инструкций все ускоряется неплохо, вручную подбирают спецы из интела "благоприятные" условия для скорости
Конечно это лучше чем оптимизации автоматикой в компиляторах
Думаю еще лучше собрать все это дело интеловским компилятором, и улетим со скоростью света
 
У них скорее всего за счет оптимизаций на расширенных наборах инструкций все ускоряется неплохо, вручную подбирают спецы из интела "благоприятные" условия для скорости
Конечно это лучше чем оптимизации автоматикой в компиляторах
Думаю еще лучше собрать все это дело интеловским компилятором, и улетим со скоростью света
Скорость достигается за счет активного использования регистров сопроцессора (avx, avx2, avx512, sse) в первую очередь.
А именно, за счет обработки больших размеров данных, за счет размерности самих этих регистров.
Плюс, посмотри исходники, там много именно оптимизированных ассемблерных вставок, разной битности, под разные разрядности систем.
 
Последнее редактирование:
Скорость достигается за счет активного использования регистров сопроцессора (avx, avx2, avx512, sse) в первую очередь.
А именно, за счет обработки больших размеров данных, за счет размерности самих этих регистров.
Плюс, посмотри исходники, там много именно оптимизированных ассемблерных вставок, разной битности, под разные разрядности систем.
Они чекают там доступный набор инструкций, и используют тот который доступен, или просто юзают в лоб расширенный набор инструкций ? Если в лоб то это нехорошо, может не отработать на старых процессорах, которые не поддерживают новейшие SSE и AVX
P.S. Сорцы не смотрел еще
 
Они чекают там доступный набор инструкций, и используют тот который доступен, или просто юзают в лоб расширенный набор инструкций ? Если в лоб то это нехорошо, может не отработать на старых процессорах, которые не поддерживают новейшие SSE и AVX
P.S. Сорцы не смотрел еще
Чекают... но тот же SSE доступен еще с 4 интела, по секрету. Там и для него есть SSE реализация.
А вообще, ты бесспорно умнее программистов Intel. Напиши им фитбэк, что "это не хорошо", они будут тебе благодарны и обязательно исправятся. Спорить тоже надо с умом, а не выдавать свое мнение, как в последней инстанции. Ибо это уже выглядит... сам знаешь как.
Критика в адрес программистов Intel?! Это даже я себе не позволял. Их код - эталон, отлаженный годами. :cool:
Они грешны в одном, что не юзают mbedtls и cryptopp, глубцы. ;)
 
Последнее редактирование:
Чекают... на тот же SSE доступен еще с 4 интела, по секрету. Там и для него есть SSE реализация.
А вообще, ты бесспорно умнее программистов Intel. Напиши им фитбэк, что "это не хорошо", они будут тебе благодарны и обязательно исправятся. Спорить тоже надо с умом, а не выдавать свое мнение, как в последней инстанции. Ибо это уже выглядит... сам знаешь как.
Критика в адрес программистов Intel?! Это даже я себе не позволял. Их код - эталон.
Чувааааак, ну ты серезно ? Я тебя чем-то обидел? Где тут критика ? Я задал ВОПРОС, это ВОПРОС епт, где ты тут утверждение увидел? Я спросил, чекают ли они доступность последних SSE и AVX, мой проц (относительно новый), не поддерживает самые поcледние AVX, и предположил, что если не чекают, то это нехорошо, для конечной либы. Просто предположил, и это предположение в контексте вопроса, я явно обозначил, что не смотрел сорцы которые ты скинул, и не могу вообще знать, что там реализовано. Возможно сама проверка доступности возлагается на плечи программиста, который использует этот код, может же быть такое ? Конечно может. Проверил, если доступно используешь эти функции, если нет то другие. Я даже сорцы не смотрел, о чем и уточнил в сообщении, что бы ты не пытался доебаться, и все равно ты зачем-то это делаешь.

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


Давай начнем доебываться до всяких мелочей, например до того, что глуПцы пишется через П, и Б даже рядом не стоит на клаве, пора кончать тебе эту вакханалию, что-то я не припоминаю момента, где бы я тебя задел за живое, чем вызвал бы твой поток негатива и доебов. Это по другому не назвать, ты доебался до какой-то мелочи на ровном месте, обвиняешь меня в том что я "раскритиковал" Intel. Начинаешь сести себя как мульт Whisper
Они грешны в одном, что не юзают mbedtls и cryptopp, глубцы.
 
Последнее редактирование:
Я даже сорцы не смотрел
Так вот прежде писать "это не хорошо", не плохо было бы взглянуть, хотя бы краем глаза, туда о чем высказываешь свое ценное мнение.
Это так, на будущее.
Даже на самом старом процессоре поддерживающим SSE (Intel 4 еще поискать надо, это уже раритет) реализация Intel будет на порядок быстрее, любой другой программной реализации на современном процессоре, если не используются фишки нового (AVX и т.д.)
И вопрос, а ты точно уверен, что последние версии mbedtls и cryptopp будут работать на старых процессорах?
В них реализована нисходящая совместимость? Я лично не уверен, но и утверждать не буду, пока в той же IDA не загляну внутрь.
Поправь меня, если я не прав. Локер должен работать везде, на любой системе, даже на Win2000, это минимум.
Даже Win2000 встречается в сетках, по сей день.
 
Начинаешь сести себя как мульт Whisper
В отличии от него, я могу привести примеры своего кода, если надо. Чтобы доказать свою точку зрения, на конкретном примере.
А не пиариться тупо обсерая все что вижу, при этом, ни строчки своего кода не показав.
У него это не от большого ума.
У меня Whisper вообще рифмуется со словом высер ;)
 
И вопрос, а ты точно уверен, что последние версии mbedtls и cryptopp будут работать на старых процессорах?
Почему ты привязался конкретно к этим двум библиотекам ? Я написал о них, у тебя какой-то дух обсера проснулся, и ты везде в свои аргументы "против" именно две эти либы которые я описал суешь. Для справки, я масштабно не использую ни одну ни другую, я нашел для себя помимо этих, еще несколько других библиотек, и использую из каждой самые быстрые\удобные варианты, комбинируя их.
Но ладно отвечу на поставленный вопрос, касательно cpyptopp не могу сказать однозначно, но реализацию mbedlts (ChaCha20) я изучил, и там все вычисления основаны на обычных операциях (+,-,<<,>>,^,|,&,*,/), которые не завязаны на железе, у тебя компилятор в зависимости от выставленных поддерживаемых архитектур уже будет решать использовать ли ему AVX-512 или же не стоит, поэтому если собрать эти сорцы с поддержкой AVX-512 они там будут, и на старых процессорах оно не запустится, если собрать без поддержки AVX-512, то оно соберется без них и прекрасно будет работать на старых процессорах
Читай самый важный момент, который ты возможно упустил и он мешает тебе трезво размышлять, совместимость будет зависеть от флагов компилятора, потому что в сорцах нет каких-то специфичных интринсиков или ассемблерных вставок, эти сорцы можно собрать как под старый пентиум, так и под новейший i-core
 
Последнее редактирование:
В отличии от него, я могу привести примеры своего кода, если надо. Чтобы доказать свою точку зрения, на конкретном примере.
А не пиариться тупо обсерая все что вижу, при этом, ни строчки своего кода не показав.
У него это не от большого ума.
Ладно может у тебя выдался нехороший день сегодня, но не стоит на меня негативом поливать и обвинять в том, чего я не делал, ты же это понимаешь ? Я тебе задал вопрос, там не было никаких утверждений, было лишь предположение в контексте моего вопроса
 
Читай самый важный момент, который ты возможно упустил и он мешает тебе трезво размышлять, совместимость будет зависеть от флагов компилятора, потому что в сорцах нет какие-то специфичных интринсиков или ассемблерных вставок, эти сорцы можно собрать как под старый пентиум, так и под новейший i-core
Ну вот и ответ. Ты собираешься под каждую систему, каждый процессор, собирать локер? Выставляя флаги компилятора?
Локер должен быть универсален изначально. И работать на линейке Win2000-Win11 (Win2022), одинаково хорошо.
А значит в нем должно быть предусмотрены любые варианты запуска, под любые системы.
И я не обижаюсь на тебя. Просто диалог, в моем понимании, должен быть конструктивным. Без предположений. С упором на факты.
Всего лишь. Тогда и спорить не о чем будет, в принципе. Все норм. ;)
 
Ну вот и ответ. Ты собираешься под каждую систему, каждый процессор, собирать локер? Выставляя флаги компилятора?
На кой хер мне собирать локер под каждую архитектуру, я соберу отдельно варианты функций в отдельный obj или lib файл, каждая из них будет с поддержкой SSE\AVX и тд и тп либо без поддержки всего этого сарафана, там всего наберется комбинаций 5-6
затем я линкую все эти варианты одной и той же функции в один проект
в коде описываю прототип функции, создаю указатель на функцию, делаю проверку, какой набор инструкций поддерживается, устанавливаю указатель на нужный мне вариант функции, в которой есть все доступные оптимизации и вызываю далее именно этот вариант функции по указателю
profit
вот тебе и кросс-поддержка разных наоборов в одном флаконе, и адаптивно выбирается наиболее подходящий вариант, для процессора на котором запущен софт

P.S. Я уверен разрабы Intel в своей либе делают то же самое (если делают, а не возлагают это на программиста), проверяют доступный набор инструкций, и используют наиболее подходящий вариант функции, который быстрее всего исполнится на типе процессора, на котором работает код
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх