понеділок, 1 червня 2020 р.

XORcerer: шифруємо й розшифровуємо інформацію


Недавно я опублікував статтю про свій алгоритм шифрування - я назвав його XORcerer. Тоді я лише обдумав концепцію шифрування і розшифровування, основану на базовому алгоритмі шифрування XOR.
Коротко нагадаю, як це працює. Є пароль, яким шифрується потрібна інформація, і сама інформація, яку потрібно зашифрувати. Пароль повторюється стільки разів, скільки потрібн для розміру інформації, і відповідні байти накладаються один на одного за допомогою оператора XOR. Ця операція оборотня, тобто, маючи пароль і застосувавши його таким самим методом до зашифрованої інформації, ми в результаті отримаємо розшифровані дані.
Цей алгоритм досить стійкий для взлому, але тривалим перебором можна підібрати пароль для розшифрування.
Моя ідея заключалась в наступному: після шифрування дані переводяться в текстовий шістнадцятеричний вигляд, тому результат можна передавати як звичайний текст наприклад, по електронній пошті. При цьому розшифрування стає на порядок складніше, але все ще можливе, тому що достатньо кожну пару символів перевести в двійковий вигляд і потім примінити метод перебору. Проте, якщо до зашиврованого тексту застосувати ще один прохід для кодування, підібрати пароль стане дуже важко.
До попередньої статті я додав відео, на якому показав як застосувати мій алгоритм до текстового файлу. Там же я обіцяв вдосконалити алгоритм і написати клас-обгортку для можливості шифрувати дані в будь-яких файлах, а також в потоці. Клас поки ще знаходиться в стані доопрацювання, але окремо виділені функції шифрування і розшифрування. В параметрах цих функцій вказується джерело для шифрування (поки що лише текст), пароль та кількість проходів шифрування. Також я допрацював тестову програму, додавши можливість вказати кількість проходів шифрування.
Якщо зловмиснику не буде відомо точної кількості проходів, підібрати пароль для розшифрування буде АБСОЛЮТНО НЕМОЖЛИВО! Таким чином, цей алгоритм можна застосовувати в системах, де необхідне шифрування даних з високим ступенем захисту і високою швидкістю шифрування.
Звісно, немає абсолютного захисту за допомогою шифрування, але при умові, що алгоритм маловідомий, зловмиснику буде потрібно як мінімум спочатку дизасемблювати програму щоб виділити яким алгоритмом інформація зашифрована, і лише тоді можна пробувати підбирати пароль для розшифрування. А не знаючи кількості проходів, підібрати його буде дуже складно і затратно по часу.
Є ще ряд ідей по вдосконаленню шифрування, але я про них розповідати наразі не буду, оскільки хочу реалізувати їх в одному зі своїх комерційних проектів, де важливо якісно захистити інформацію.

Реставрація ну ду-у-уже староко комп'ютера. Чи можливе нове життя?

  Минулого року мені дістався дуже старий комп'ютер, якому понад 20 років. На відео я зробив перше включення і огляд нутрощів цього &quo...