CryptoNote - шифрование файлов. Часть 3

I

Ishikawa

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

Приступим.

В основном классе нашей программы создадим публичную переменную String.
Потом добавим функцию CryptoText с одним параметром типа bool. Она будет использоваться в качестве триггера.

Итак, чтобы зашифровать текст, нужно достать его из текстового поля, перевести в массив char, затем с помощью foreach каждый char переведем в Int, проведем нужные нам операции ( внутри банальное умножение на число, но можно дописать что-то более мощное, хоть AES ), и через промежуточную переменную выведем в другое текстовое поле.

Иными словами:

upload_2017-7-10_15-5-11.png


На форму нашего приложения добавляем еще одну кнопку и вещаем на нее обработчик, в теле которого делаем вызов функции:

upload_2017-7-10_15-7-4.png


Если TRUE = кодируем, FALSE = декодируем.

Декодировка для данного варианта строится тоже просто. Требуется взять текст из другого поля, перевести его в массив char, также в цикле foreach из char сделать int и провести процедуры, обратные шифрованию (банальное деление на число) и вывести текст в другое текстовое поле.

Иными словами:

upload_2017-7-10_15-9-5.png


На форму добавляем еще одну кнопку (можно и чек-бокс) для дешифровки и вешаем обработчик для функции:

upload_2017-7-10_15-10-21.png


Компилируем. Проверяем что получилось.

А получилось весьма интересно. Вот как выглядит шифрованный текст:

upload_2017-7-10_15-12-40.png


И так расшифрованный:
upload_2017-7-10_15-14-58.png


Конечно, при таком варианте как банальные операции шифр разгадывается легко и подвержен статистическому анализу, но никто не мешает использовать более крутые алгоритмы, основанные на эллиптических кривых, числе Пи, логарифмах и пр.

Ко всему в данном варианте ключ для шифровки и расшифровки постоянен.
Но никто не мешает использовать ваш собственный - для этого в коде еще с первой версии есть кусочек кода:

upload_2017-7-10_15-17-33.png


На этом всё.

Обновленная версия на GitHub по ссылке: CryptoNote
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!