Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CryptoXOR

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

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

Это есть на GitHub Pages: https://batmaev.github.io/CryptoXOR

В теории, такое шифрование могло бы быть абсолютно стойким, так как в основе лежит шифр Вернама https://ru.wikipedia.org/wiki/Шифр_Вернама

Но на практике есть ограничения:

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

  • Прежде чем делать побитовый xor, нужно заменить буквы двоичными числами. А после преобразовать обратно в буквы.

    Если каждая буква — это целое число из отрезка [0, m], то xor не должен выводить число из этого отрезка, иначе мы не сможем выполнить обратное преобразование, и зашифрованное сообщение нельзя будет представить в виде букв. Если пользователю придётся вводить шифротекст с клавиатуры, то ему будет неудобно.

    К сожалению, число букв в алфавите не равно 2^k ни для какого целого k. Поэтому приходится укорачивать случайное число до тех пор, пока не начнёт выполняться свойство про отрезок [0, m].

    Это сильно ограничивает алгоритм. В самом деле, для любых a и b выполняется, что число a xor b лежит между a - b и a + b.

    Из-за этого нет такого, что буква может перейти в любую другую. Чтобы шифрование оказалось отображением множества букв на себя (т.е. выполнялось свойство про отрезок [0, m]), мне пришлось ограничить генерируемые числа b: сделать их меньше 32. А всего разрешено 160 разных символов.

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

About

Шифрует текст, используя XOR с последовательностью псевдослучайных чисел

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages