![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Apollion |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 21.5.2009 Репутация: нет Всего: нет |
Уважаемые программисты, нужно написать программу шифрования методом скремблирования. Не могу понять даже теорию.. помогите пожалуйста!!
Теория: Скремблерами называются программные или аппаратные реализации алгоритма, позволяющего шифровать побитно непрерывные потоки информации. Скремблер представляет набор бит, изменяющихся на каждом шаге по определенному алгоритму. После выполнения каждого очередного шага на его выходе появляется шифрующий бит – либо 0, либо 1, который накладывается на текущий бит информационного потока операцией XOR (eXclusive OR). Суть скремблирования заключается в побитном изменении проходящего через систему потока данных. Практически единственной операцией, используемой в скремблерах является XOR – "побитное исключающее ИЛИ". Параллельно прохождению информационного потока в скремблере по определенному правилу генерируется поток бит – кодирующий поток. Как прямое, так и обратное шифрование осуществляется наложением по XOR кодирующей последовательности на исходную. Генерация кодирующей последовательности бит производится циклически из небольшого начального объема информации – ключа по следующему алгоритму: Кодирующая последовательность бит формируется некоторым генератором псевдослучайной последовательности чисел, в дальнейшем ГПЧ. Один из вариантов его реализации может использовать сдвиговый регистр с обратной связью. Суть его работы заключается в следующем. Из текущего набора бит выбираются значения определенных разрядов и складываются по XOR между собой. Все разряды сдвигаются на 1 бит, а только что полученное значение ("0" или "1") помещается в освободившийся самый младший разряд. Значение, находившееся в самом старшем разряде до сдвига, добавляется в кодирующую последовательность, становясь очередным ее битом ( рис.1). Из теории передачи данных криптография заимствовала для записи подобных схем двоичную систему счисления. В соответствии с этой системой, изображенный на рисунке ГПЧ записывается комбинацией (10011)2 – единицы соответствуют разрядам, используемых для формирования обратной связи. Для инициализации работы ГПЧ необходимо указать его начальное состояние – ключ. Как и в предыдущем случае, ключ определяется некотором двоичным кодом, например (01111)2. Рассмотрим пример кодирования информационной последовательности 0101112 скремблером, использующим ГПЧ 1012 с ключом 1102. ГПЧ код.бит инф.бит рез-т 1 1 0 _ \ \ \_ 1 1 1 _ \_ \ \ \_ 0 XOR 0 = 0 0 1 1 _ \_ \ \ \_ 1 XOR 1 = 0 1 0 1 \_ \ \ 1 XOR 0 = 1 и т.д. Декодирование заскремблированных последовательностей происходит по той же самой схеме, что и кодирование. Для этого в алгоритмах применяется результирующее кодирование по "исключающему ИЛИ" – схема, однозначно восстановимая при раскодировании без каких-либо дополнительных вычислительных затрат. Основная проблема шифров на основе скремблеров - синхронизация передающего (кодирующего) и принимающего (декодирующего) устройств. При пропуске или ошибочном вставлении хотя бы одного бита вся передаваемая информация необратимо теряется. Число бит, охваченных обратной связью, то есть разрядность устройства памяти для порождающих кодирующую последовательность бит называется разрядностью скремблера. Изображенный выше скремблер имеет разрядность 5. Можно отметить, что чем больше разрядность ГПЧ скремблера, тем выше криптостойкость системы, основанной на его использовании. При достаточно долгой работе скремблера неизбежно возникает его зацикливание. По выполнении определенного числа тактов в разрядах ГПЧ создастся комбинация бит, которая в нем уже однажды оказывалась, и с этого момента кодирующая последовательность начнет циклически повторяться с фиксированным периодом. Данная проблема неустранима по своей природе, так как в N разрядах не может формироваться более 2N различных комбинаций бит, и, следовательно, максимум, через, 2N-1 циклов повтор комбинации обязательно произойдет. Комбинация "все нули" сразу же исключается из цепочки графа состояний скремблера – она приводит скремблер к такому же положению "все нули". Это указывает еще и на то, что ключ "все нули" неприменим для скремблера. Каждый генерируемый при сдвиге бит зависит только от нескольких бит хранимой в данный момент комбинации. Поэтому после повторения некоторой ситуации, однажды уже встречавшейся в скремблере, все следующие за ней будут в точности повторять цепочку, уже прошедшую ранее в скремблере. Возможны различные типы графов состояния ГПЧ. С позиций криптографии наиболее важным является случай, когда все 2N-1 состояний системы образуют цикл. При этом период повторения выходных комбинаций максимален, а корреляция между длиной цикла и начальным состоянием ГПЧ - ключом (приводящая к появлению более слабых ключей) отсутствует. Следствием одной из теорем математики доказывается (в терминах применительно к скремблированию), что для ГПЧ любой разрядности N всегда существует такой набор охватываемых обратной связью разрядов, что генерируемая ими последовательность бит будет иметь период, равный 2N-1 битам. Такую последовательность называют последовательностью наибольшей длины (ПНД).Так, например, в 8-битном ГПЧ, при таком настройке за время генерации последовательно проходят 255 возможных состояний, не повторяясь ни разу. Процедура поиска ПНД неразрывно связана с математической теорией неприводимых многочленов. |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 30 Всего: 372 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |