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