Pull to refresh
10
0
Send message
Ну для начала нужен критерий того что такое спам. Условно говоря, есть функция f(x), которая возвращает вероятность того что это спам. Эта функция выполняет вычисления над x. Вычисления в f(x) можно провести гомоморфно, а результат вычислений передать тому, кто имеет право расшифровывать сообщения. Он расшифровывает результат и на основе полученной вероятности принимает решение. Это может быть владелец почты. Кода он подключается к почтовому ящику, то ему передаются шифротексты с вероятностями спама и на его стороне происходит расшифрование.

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

Стоит отметить, что у алгоритмов на решетках есть небольшая, но всё же вероятность получения ошибки при дешифровке (декапсуляции). Для CRYSTALS-KYBER и Saber они составляют 1 на 2^120 — 1 на 2^160.
Согласен, есть такая неприятная особенность у некоторых PKE/KEM на решетках, но не во всех же! У NTRU нет ошибок декапсуляции (Хотя в оригинальном NTRUEncrypt они были). У NTRU Prime (из алтернативных кандидатов) так же нет ошибок декапсуляции. По поводу величины ошибки -имхо, — 1 на 2^120 — 1 на 2^160 достаточно низкая вероятность, чтобы о ней можно было даже не беспокоиться (может, за исключением каких-то критических систем).
Да, я немного неправильно выразился в статье. Спасибо за замечание! А каким направлением вы занимаетесь, если не секрет?
Первые сводятся как правило к задаче нахождения наименьшего вектора на решетке. Вторые сводятся к задаче декодирования линейного кода. Обе эти задачи являются NP-полными и могут быть сведены друг к другу. Так что нет ничего удивительного, что математика выглядит похожей. Но state-of-the-art методы криптоанализа систем имеют разную сложность и используют отличные друг от друга методы, поэтому имеет смысл разнести задачи по отдельным классам.
Основная идея прелесть получившегося алгоритма заключается в том, что для каждого акта шифрования не используется один и тот же секретный ключ, а генерируется функция обхода исходного ключа, так называемая сигнатура пути обхода (pathKeySignature в коде)

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

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

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

метод byteShifting дополнительно вносит хаотичность в генерируемый шифр посредством добавления различных сдвигов в определенных границах.
Вы не описали подробности реализации метода byteShifting. Из каких соображений он проектировался? Что значит «вносит хаотичность» в терминах безопасности? А ведь это очень важно!
2 мегабайта рандомного текста было зашифровано и расшифровано за 4 секунды
Я подозреваю что вы как-то неправильно тестировали шифр. Слишком медленно. Тем более на i7-8700. Собственно, основным преимуществом поточных шифров является их скорость.Пример из недавнего — в Украине в конце 2019 года приняли новый стандарт поточного шифрования — «Струмок». Его скорость 18 Гб/c)

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

Information

Rating
Does not participate
Registered
Activity