Шифр Вернама, реализация Visual Studio С++

Загрузить исходный код ЗДЕСЬ.


	#include <windows.h>
	#include <stdio.h>
		
	// реализация шифра Вернама
		
	int main() 
	{
		// Устанавливаем кодовую страницу для ANSI
		SetConsoleOutputCP(1251); // 1251 - кодировка для русского языка
		
		char original = 'A';  // Исходный символ
		char key = 'K';      // Ключ для шифрования
		
		char encrypted = original ^ key;  // Шифрование
		char decrypted = encrypted ^ key;  // Расшифровка
		
		printf("Исходный символ: %c\n", original);
		printf("Зашифрованный символ: %d\n", encrypted);
		printf("Расшифрованный символ: %d -> %c\n", decrypted, decrypted);
		
		return 0;
	}

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

Процесс шифрования включает в себя побитовую операцию XOR между символами сообщения и ключа. Главная особенность — ключ должен использоваться только один раз и храниться в секрете. Если ключ действительно случайный и одноразовый, то шифр Вернама обеспечивает абсолютную безопасность, так как без знания ключа расшифровать сообщение невозможно.

Операции для использования шифра Вернама: исходный символ, операция XOR с символом ключа для шифрования, для расшифровки исходный символ, операция XOR с символом ключа. XOR с ключем

В C++ операция XOR выполняется с помощью оператора ^.


	Шифр Вернама

	Зашифрованный символ = Исходный символ  XOR Ключевой символ

	Расшифрованный символ = Зашифрованный символ XOR Ключевой символ

В операции XOR порядок операндов не имеет значения:

	
	A XOR B = B XOR A