Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Другие способы скрытия информации





Иногда разработчики следуют древнему способу обеспечения безопасности – тотальной секретности. И вместо применения испытанных криптографических алгоритмов они пытаются скрыть данные при помощи хорошо известных обратимых алгоритмов, как, например, UUEncode, Base64 или комбинации каких-нибудь простых методов. В этом случае все, что нужно для расшифровки, – это повторно преобразовать зашифрованное сообщение при помощи алгоритма, ранее использованного для его зашифровки. Часть разработчиков пользуется кодировкой данных при помощи операции исключающего ИЛИ (XOR) вместо применения криптографических алгоритмов с ключом. Для кодировки сообщения ключ не нужен. Ниже рассмотрены некоторые широко известные алгоритмы кодирования.

 

XOR

В качестве промежуточного шага многие сложные и безопасные алгоритмы шифрования используют операцию XOR. Часто можно встретить данные, которые пытались скрыть операцией XOR. XOR – сокращение от английских слов ИСКЛЮЧАЮЩЕЕ ИЛИ (exclusive or). ИСКЛЮЧАЮЩЕЕ ИЛИ – логическая операция, таблица истинности которой представлена в табл. 6.2. Операция выполняется на битах A и B. Результат операции равен 0 только в том случае, если оба бита одинаковы. В противном случае результат равен 1.

 

Таблица 6.2. Таблица истинности операции XOR

 

Посмотрите на простой пример кодировки и восстановления данных с помощью операции XOR. В примере используется один ключевой символ («A») для преобразования сообщения, состоящего из единственного символа («B»). В результате получится зашифрованное сообщение «ciphertext» (см. табл. 6.3).

 

Таблица 6.3. Операция XOR над «А» и «В»

Предположим, что известны величина «B» и результат шифрования сообщения «ciphertext».

 

Как найти неизвестный ключ «A»? Требуется восстановить ключ для раскодирования другого закодированного сообщения «ciphertext2», битовое представление которого 00011010. Для этого нужно выполнить операцию XOR с операндами «B» и «ciphertext» и восстановить ключ «A». Результат воcстановления показан в табл. 6.4.

 

Таблица 6.4. Результат операции XOR на операндах «ciphertext» и «В»

После восстановления ключа им можно воспользоваться для декодирования «cipher2» и в результате закодировать символ «Z» (см. табл. 6.5).

 

Таблица 6.5. Результат операции XOR на операндах «cipher2» и «А»

 

 

 

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

 

Манипуляции над абстрактными 0 и 1 могут оказаться трудными для восприятия, если ранее читатель не сталкивался с двоичными числами и величинами. Поэтому автор решил привести пример простой программы, которая выполняет серию из трех операций XOR на различных перестановках ключа для кодирования сообщения. В этой короткой программе на языке Perl используется свободно распространяемый модуль IIIkey для обращения к внутренней функции шифрования XOR. Для того чтобы воспользоваться приведенной программой, следует загрузить модуль IIIkey по адресу www3.marketrends.net/encrypt.#!/usr/bin/perl

 

 

#!/usr/bin/perl

 

# Encodes/Decodes a form of XOR text

 

# Requires the IIIkey module

 

# Written specifically for HPYN 2nd Ed.

 

# by FWL 01.07.02

 

# Use the IIIkey module for the backend

 

# IIIkey is available from http://www3.marketrends.net/

 

encrypt/

 

use IIIkey;

 

# Simple input validation

 

sub validate() {

 

if (scalar(@ARGV) < 3) {

 

print “ Error: You did not specify input correctly!\n”;

 

print “ To encode data use./xor.pl e \“ Key\” \“ String

 

to Encode\”\n”;

 

print “ To decode data use./xor.pl d \“ Key\” \“ String

 

to Decode\”\n”;

 

exit;

 

}

 

}

 

validate();

 

$tmp=new IIIkey;

 

$key=$ARGV[1];

 

$intext=$ARGV[2];

 

if ($ARGV[0] eq “e”) { # encode text

 

$outtext=$tmp->crypt($intext, $key);

 

print “Encoded $intext to $outtext”;

 

} elsif ($ARGV[0] eq “d”) { # decode text

 

$outtext=$tmp->decrypt($intext, $key);

 

print “Decoded $intext to $outtext”;

 

} else { # No encode/decode information given!

 

print “To encode or decode? That is the question.”;

 

exit;

 

}

 

А вот пример отчета работы программы.

 

 

$./xor.pl e “my key” “secret message”

 

Encoded secret message to 8505352480^0758144+510906534

 

$./xor.pl d “my key” “8505352480^0758144+510906534”

 

Decoded 8505352480^0758144+510906534 to secret message

 

Date: 2015-06-05; view: 464; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию