Цель лекции: продолжить знакомство с
В теории кодирования и криптографии широко применяются так называемые сдвиговые регистры с обратной связью. Они использовались в аппаратуре шифрования еще до начала массового использования ЭВМ и современных высокоскоростных программных
Сдвиговые регистры с обратной связью могут применяться для получения потока псевдослучайных бит. Сдвиговый регистр с обратной связью состоит из двух частей: собственно ).
(рис 8.1) Сдвиговый регистр с обратной связьюИзвлекать биты из сдвигового регистра можно только по одному. Если необходимо извлечь следующий бит, все биты
Простейшим видом сдвигового регистра с обратной связью является линейный сдвиговый регистр с обратной связью (linear feedback
Для того, чтобы стало понятнее, как работает сдвиговый регистр с обратной связью, рассмотрим 4-битовый
(рис 8.2) Пример 4-разрядного линейного сдвигового регистраЗапишем в изображенный на рисунке регистр начальное значение 1011. Вычислять последовательность
внутренних состояний регистра удобно с помощью таблицы, представленной на таблица 8.1. В таблице отражены первые девять состояний регистра.
На каждом шаге все содержимое регистра сдвигается вправо на один разряд. При этом можно получить в качестве результата один бит. На освободившееся слева место поступает бит, равный результату вычисления функции обратной связи $$f = b_1 \oplus b_4$$. Выходную последовательность генератора псевдослучайных бит образует последний столбец таблицы (извлекаемый бит).
| Номер состояния | Внутреннее состояние регистра b4, b3, b2, b1 | Результат вычисления функции обратной связи $$f = b_1 \oplus b_4$$ | Извлекаемый бит ( b1 ) |
|---|---|---|---|
0 |
1 0 1 1 |
0 | 1 |
1 |
0 1 0 1 |
1 |
1 |
2 |
1 0 1 0 |
1 |
0 |
3 |
1 1 0 1 |
0 |
1 |
4 |
0 1 1 0 |
0 |
0 |
5 |
0 0 1 1 |
1 |
1 |
6 |
1 0 0 1 |
0 |
1 |
7 |
0 1 0 0 |
0 |
0 |
8 |
0 0 1 0 |
0 |
0 |
Линейный сдвиговый регистр размером n бит может находиться в одном из 2n-1 состояний (исключается состояние регистра из одних нулей - при появлении такого состояния далее будут порождаться лишь нули, и о псевдослучаности порождаемой последовательности говорить не приходится).
Поэтому теоретически такой регистр может генерировать псевдослучайную последовательность с максимальным
периодом 2n-1. Линейный сдвиговый регистр с обратной связью будет генерировать циклическую
последовательность битов с максимальным периодом только при выборе в качестве отводной последовательности
определенных бит. Разработана математическая теория, позволяющая выбрать подходящие номера разрядов для бит отводной
последовательности.
Линейные сдвиговые регистры с обратной связью часто использовались и используются до сих пор при шифровании потоков данных. Для повышения криптостойкости в таких устройствах шифрования применяются комбинации нескольких сдвиговых регистров с обратной связью, а также вводятся дополнительные перемешивающие операции. Такие электронные схемы предлагались и выпускались еще до второй мировой войны. Аналогичные принципы заложены и в некоторые
Основным недостатком генераторов псевдослучайных чисел на базе линейных сдвиговых регистров является сложность программной реализации. Сдвиги и
Можно использовать любой блочный алгоритм, например AES или ГОСТ 28147-89, для поточного шифрования информации, используя режимы OFB и CTR блочных шифров.
Название режима OFB (Output FeedBack) переводится как "обратная связь по выходу".
Пусть минимальный блок данных, используемый для передачи, состоит из j бит; обычным значением является j=8 (то есть минимальной порцией передаваемых данных является 1 байт). В режиме f на основе секретного ключа К и некоторого инициализирующего значения Y0 формирует псевдослучайную последовательность j-битовых чисел z1,z2,...,zk, которая затем может использоваться в качестве гаммы для шифрования сообщения. Результат зашифрования является входом процедуры шифрования следующего блока исходного сообщения. На каждом этапе шифрования из зашифрованного блока Yi выбирается j младших битов.
Таким образом, для получения псевдослучайной последовательности используется схема:
Yi=f(Yi-1,K), zi=j младших бит Yi, 1<=i<=k
Если размер блока шифра равен N бит, то параметр j может принимать значения от 1 до N. Значение Y0 называют также инициализирующим вектором.
Последовательность чисел zi можно использовать в качестве гаммы для шифрования потока исходных данных, состоящего из символов хi:
в результате чего получится поток зашифрованных символов yi.
Так как значения yi не зависят от открытого текста xi, то каждый раз, используя одни и те же параметры К и Y0, мы получим одну и ту же последовательность гаммы zi. Поэтому рекомендуется менять значение ключа К для передачи каждого нового сообщения.
Расшифрование сообщений для описанного режима может производиться только с начала последовательности, так как невозможно получить произвольный элемент последовательности zi, не вычислив все предыдущие.
Основное достоинство режима z может быть сформирована заранее для того, чтобы быстро шифровать или расшифровывать поточные сообщения в момент их поступления. Это может быть актуально для систем, обрабатывающих данные в реальном масштабе времени.
Еще одно важное достоинство режима yi, то это приведет к невозможности расшифрования только этого блока и получения одного блока исходных данных xi. Дальнейшая последовательность блоков будет расшифрована корректно.
Название режима CTR происходит от слова "CounTeR" — "счетчик". Этот режим является модификацией режима Y0. Общая формула выглядит следующим образом:
Yi=f(Yi-1+1,K), zi=j старших бит Yi
Преимущество режима z может быть вычислен непосредственно. Этот факт связан с тем, что на каждом шаге Yi увеличивается на единицу, и, следовательно, если нам известен номер шага i, то значение Yi можно вычислить непосредственно, зная Y0 и i по формуле:
Yi=f(Y0+i,K),
Это дает возможность шифровать и дешифровать любые фрагменты сообщения независимо друг от друга.
Алгоритм RC4 разработан Р.Ривестом специально как генератор потока ключевой информации с ключом переменной длины.
RC4 — фактически класс алгоритмов, определяемых размером его блока или слова – параметром n. Обычно n = 8, но можно использовать и другие значения. Для упрощения анализа n=4. Внутреннее состояние RC4 состоит из массива размером 2n слов и двух счетчиков, каждый размером в одно слово. Два счетчика, оба при n=4 4-битовые, назовем i и j. Все вычисления проводятся по модулю 2n.
Массив используется как таблица замен, называемая S-бокс, и далее будет обозначаться как S. В каждый момент времени таблица S содержит все возможные n-битовые (в нашем случае 4-битовые) числа в перемешанном виде. Конкретная перестановка значений в таблице определяется ключом. Так как каждый элемент таблицы принимает значения в промежутке 0 до 15, то его можно трактовать двояко: либо как число, либо как номер другого элемента в таблице.
Алгоритм RC4 состоит из двух этапов. На первом, подготовительном этапе производится инициализация таблицы замен S. На втором, основном этапе вычисляются псевдослучайные числа.
Посмотрим, как инициализируется таблица S. Вначале она заполняется последовательно числами от 0 до 15. Ключ представляется в виде последовательности 4-битовых слов, которыми заполняется другой массив K, такого же размера, как S. Если ключ оказался короче, чем надо, он повторяется нужное число раз. Затем выполняются следующие действия ( алгоритм 1 ):
1. j = 0; i =0; 2. j = (j + Si + Ki) mod 16; 3. поменять местами Si и Sj; 4. i = i +1; 5. если i <16, то перейти на п.2
В результате выполнения этого алгоритма производится начальное заполнение таблицы замен S, причем это начальное перемешивание значений производится в зависимости от секретного ключа.
После того, как таблица S подготовлена, можно начинать генерацию случайных n-битовых слов. Для этого счетчикам i и j присваивается начальное значение 0. Затем для получения каждого нового значения zi выполняются следующие действия ( алгоритм 2 ):
i = (i + 1) mod 16; j = (j + Si) mod 16; поменять местами Si и Sj; a = (Si + Sj) mod 16; zi = Sa.
Полученное 4-битовое значение zi может использоваться в качестве ключа для шифрования очередного 4-битового блока входного потока данных.
Например, пусть секретный ключ состоит из шести 4-битовых значений (приведем их в десятичном виде): 1, 2, 3, 4, 5, 6. Попробуем сгенерировать последовательность чисел по алгоритму RC4.
Заполним таблицу S последовательно числами от 0 до 15.
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Затем подготовим таблицу K, записав в нее ключ необходимое количество раз:
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 |
Затем перемешаем содержимое таблицы S. Для этого будем использовать алгоритм 1, описанный выше.
Процесс выполнения представим в виде трассировочной таблицы (таблица 8.2), в которой укажем все производимые действия. При выполнении вычислений необходимо помнить, что все операции сложения выполняются по модулю 16.
| Номер пункта алг. | Выполняемое действие (по mod 16) | Новое значение i | Новое значение j |
|---|---|---|---|
| 1 | j = 0; i =0 | 0 | |
| 2 | j = j + Si + Ki = 0 + 0 + 1 = 1 | 1 | |
| 3 | Поменять местами Si и Sj, то есть S0 и S1 | ||
| 4 | i = i +1 | 1 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = j + Si + Ki = 1 + 0+ 2 = 3 | 3 | |
| 3 | Поменять местами Si и Sj, то есть S1 и S3 | ||
| 4 | i = i +1 | 2 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (3 + 2 + 3) mod 16 = 8 | 8 | |
| 3 | Поменять местами Si и Sj , то есть S2 и S8 | ||
| 4 | i = i +1 | 3 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (8 + 0 + 4) mod 16 = 12 | 12 | |
| 3 | Поменять местами Si и Sj , то есть S3 и S12 | ||
| 4 | i = i +1 | 4 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (12 + 4 + 5) mod 16 = 5 | 5 | |
| 3 | Поменять местами Si и Sj , то есть S4 и S5 | ||
| 4 | i = i +1 | 5 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (5 + 4 + 6) mod 16 = 15 | 15 | |
| 3 | Поменять местами Si и Sj , то есть S5 и S15 | ||
| 4 | i = i +1 | 6 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (15 + 6 + 1) mod 16 = 6 | 6 | |
| 3 | Поменять местами Si и Sj , то есть S6 и S6 | ||
| 4 | i = i +1 | 7 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (6 + 7 + 2) mod 16 = 15 | 15 | |
| 3 | Поменять местами Si и Sj , то есть S7 и S15 | ||
| 4 | i = i +1 | 8 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (15 + 2 + 3) mod 16 = 4 | 4 | |
| 3 | Поменять местами Si и Sj , то есть S8 и S4 | ||
| 4 | i = i +1 | 9 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (4 + 9 + 4) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S9 и S1 | ||
| 4 | i = i +1 | 10 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 10 + 5) mod 16 = 0 | 0 | |
| 3 | Поменять местами Si и Sj , то есть S10 и S0 | ||
| 4 | i = i +1 | 11 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (0 + 11 + 6) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S11 и S1 | ||
| 4 | i = i +1 | 12 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 0 + 1) mod 16 = 2 | 2 | |
| 3 | Поменять местами Si и Sj , то есть S12 и S2 | ||
| 4 | i = i +1 | 13 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (2 + 13 + 2) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S13 и S1 | ||
| 4 | i = i +1 | 14 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 14 + 3) mod 16 = 2 | 2 | |
| 3 | Поменять местами Si и Sj , то есть S14 и S2 | ||
| 4 | i = i +1 | 15 | |
| 5 | i < 16 , поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (2 + 7 + 4) mod 16 = 13 | 13 | |
| 3 | Поменять местами Si и Sj , то есть S15 и S13 | ||
| 4 | i = i +1 | 16 | |
| 5 | i < 16 – неверно, поэтому закончить |
После выполнения алгоритма 1 получим инициализированную и подготовленную к основному этапу таблицу S:
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 10 | 13 | 14 | 12 | 2 | 15 | 6 | 4 | 5 | 3 | 1 | 9 | 8 | 7 | 0 | 11 |
После того как таблица S подготовлена, можно начинать генерацию случайных 4-битовых слов. Вычислим
первые 5 чисел псевдослучайной последовательности, используя алгоритм 2. Результаты вычисления последовательности
значений также представим в виде таблицы (таблица 8.3)
| Выполняемое действие (по mod 16) | Новое знач. i | Новое знач. j | Новое знач. а | |
|---|---|---|---|---|
Вычисление z1 |
1. i = (i + 1) =0+1=1 | 1 | ||
| 2. j = (j + Si) mod 16=(0+13) mod 16=13 | 13 | |||
| 3. Поменять местами S1 и S13 | ||||
| 4. a = (Si + Sj )mod 16=(7+13)mod 16=4 | 4 | |||
| 5. z1 = S4 =2 | ||||
Вычисление z2 |
1. i = (i + 1) =1+1=2 | 2 | ||
| 2. j = (j + Si) mod 16=(13+14) mod 16=11 | 11 | |||
| 3. Поменять местами S2 и S11 | ||||
| 4. a = (Si + Sj )mod 16=(9+14)mod 16=7 | 7 | |||
| 5. z2 = S7=4 | ||||
Вычисление z3 |
1. i = (i + 1) =2+1=3 | 3 | ||
| 2. j = (j + Si) mod 16=(11+12) mod 16=7 | 7 | |||
| 3. Поменять местами S3 и S7 | ||||
| 4. a = (Si + Sj )mod 16=(4+12)mod 16=0 | 0 | |||
| 5. z3 = S0=10 | ||||
Вычисление z4 |
1. i = (i + 1) =3+1=4 | 4 | ||
| 2. j = (j + Si) mod 16=(7+2) mod 16=9 | 9 | |||
| 3. Поменять местами S4 и S9 | ||||
| 4. a = (Si+ Sj )mod 16=(3+2)mod 16=5 | 5 | |||
| 5. z4= S5=15 | ||||
Вычисление z5 |
1. i = (i + 1) =4+1=5 | 5 | ||
| 2. j = (j + Si) mod 16=(9+15) mod 16=8 | 8 | |||
| 3. Поменять местами S5 и S8 | ||||
| 4. a = (Si+ Sj)mod 16=(5+15)mod 16=4 | 4 | |||
| 5. z5 = S4 =3 |
В результате первые пять значений получились следующие: 2, 4, 10, 15, 3. При необходимости получения большего количества случайных чисел можно продолжить вычисления дальше. При n=4 генерируемые числа будут иметь размер 4 бита, то есть иметь значения от 0 до 15.
В рассмотренном примере размер n слова или блока алгоритма принимался равным четырем. Это значение можно брать и другим, например 8 или 16. В случае использования n=8 таблица замен S должна состоять из 28=256 значений, а элементами таблицы замен должны быть числа от 0 до 255. Размер счетчиков i и j должен также изменить до восьми бит (максимальное значение – 255 ). Кроме того, все вычисления в случае n=8 необходимо выполнять по модулю 256. Аналогичные изменения в алгоритме необходимо производить и при других значениях параметра n.
Алгоритм RC4 тщательно изучался криптоаналитиками. В нем не обнаружено каких бы то ни было слабых мест. Помимо высокой устойчивости к криптоанализу, этот алгоритм очень быстр и может использоваться для генерации ключевой последовательности при
Генераторы ПСЧ находят широкое применение в криптографии, например, при
Одной из главных областей применения генераторов случайных чисел является формирование уникальных ключей для шифрования. В любой системе передачи секретных данных требуется множество ключей для всех пользователей системы. В принципе ключи шифрования можно получать с помощью
Наилучшие характеристики будут иметь генераторы случайных чисел, основанные на естественных случайностях реального мира. Например, можно создать ГСЧ, основанные на следующих данных:
Кроме того, параметры других различных физических явлений могут быть положены в основу ГСЧ. К сожалению, многие методики получения настоящих случайных чисел не могут быть реализованы на практике, так как используемый в криптографических целях генератор должен быть компактным, быстрым (генерировать числа за доли секунды), независящим от внешних факторов и условий окружающей среды.
Тем не менее, разработчики интегральных схем конструируют и производят аппаратные ГСЧ, основанные на разных принципах. Например, разработан способ с использованием двух конденсаторов типа "металл - диэлектрик - полупроводник". Случайное значение является функцией разности зарядов этих конденсаторов. В другом устройстве обрабатывается и используется значение температурного шума полупроводникового диода.
Предлагаются и программно-аппаратные методы для получения случайных чисел. Известны методы, основанные на шуме звуковой карты персонального компьютера, значении счётчика тактов процессора, скорости вращения жесткого диска компьютера, значении
Рассмотрим еще раз общую структуру секретной системы, представленную в . Схема структуры такой системы изображена на рис 8.3.
(рис 8.3) Общая структура секретной системы, использующей симметричное шифрованиеОтправитель, представляющий собой источник сообщений, и получатель (приемник зашифрованных сообщений) договариваются о выборе приемлемого шифра и ключа. Затем отправитель шифрует свое сообщение с использованием выбранного алгоритма шифрования и ключа и пересылает полученный шифротекст по (открытому) каналу связи. Получатель расшифровывает его, используя шифр и ключ.
Противник, скорее всего, может перехватить зашифрованное сообщение, так как предполагается, что оно передается по открытому каналу связи. В этом случае криптоаналитик противника может попытаться вскрыть шифротекст. Будем предполагать, что отправитель и получатель сообщения используют достаточно
Таким образом, принципиальной является надежность канала передачи ключа участникам секретных переговоров. Самым надежным способом первоначального распределения ключей является обмен ключами при личной встрече абонентов сети передачи данных. Для доставки ключей можно также использовать специальных курьеров. Если в обмене секретными сообщениями планируется участие небольшого количества сторон, например, двух или трех, то оба указанных способа вполне допустимы. Если же количество взаимодействующих абонентов велико, то задача распределения ключей превращается в настоящую проблему.
При использовании секретных ключей существуют и другие трудности. Например, ключи должны время от времени меняться. Это связано с тем, что чем дольше используется ключ, тем больше вероятность его компрометации (раскрытия). Чем дольше используется ключ, тем больше потери от его компрометации, так как тем большее количество сообщений сможет раскрыть злоумышленник при получении ключа. Даже если ключ не будет раскрыт, проводить криптоанализ противнику удобнее, имея в своем распоряжении достаточное количество сообщений, зашифрованных одним и тем же ключом. Оптимальным считается использовать для каждого сеанса обмена зашифрованными сообщениями свой уникальный ключ – так называемый сеансовый ключ. Но где взять такое количество ключей для большой телекоммуникационной сети и как их распределять?
Таким образом, при большом числе взаимодействующих сторон требуется предварительная рассылка значительного количества ключей, а также последующее их хранение и при необходимости – смена. Предположим, в локальной сети имеется 100 пользователей. Пусть пользователи сети желают обмениваться секретными данными друг с другом по принципу "каждый с каждым". В этом случае для каждой пары пользователей необходим свой секретный ключ для шифрования сообщений. Из ста пользователей можно составить 100x99/2=4950 пар, следовательно, в системе передачи данных будут использоваться 4950 разных секретных ключей. Все эти ключи должны быть сгенерированы и распределены надежным образом. Кроме того, каждый из ста пользователей должен помнить 99 разных ключей, каждый для определенного абонента. Если же в обмене сообщениями участвует не сто, а тысяча человек, то задача управления ключами становится чрезвычайно сложной.
В связи с указанными трудностями на практике применяются специальные автоматизированные системы управления ключами. Такие системы позволяют генерировать ключи, хранить их и архивировать, восстанавливать утерянные ключи, заменять или изымать из обращения старые и ненужные ключи. Важнейшей частью системы управления ключами является центр распределения ключей (Key Distribution Center –
Специалистами разработаны специальные процедуры (или протоколы), которые позволяют центру распределения ключей доставлять пользователям ключи для проведения отдельных сеансов связи ( сеансовые ключи ). К сожалению, все протоколы с использованием симметричного шифрования имеют те или иные недостатки. Рассмотрим один из возможных
Предположим, при вступлении в сообщество пользователей сети обмена данными
Указанный протокол достаточно прост и может быть автоматизирован с помощью, например, программы передачи данных. Однако приведенная процедура распределения сеансовых ключей имеет несколько явных недостатков.
Первым недостатком данной системы является то, что Центр участвует во всех обменах. Сбои в работе Центра нарушат работу всей системы.
Вторым недостатком является то, что центр распределения ключей должен хранить в каком-либо виде секретные ключи всех абонентов сети. Если злоумышленник найдет доступ к секретным ключам пользователей системы ("взломает" систему, подкупит администратора и т.д.), то он сможет читать и изменять все передаваемые сообщения.
И, наконец, остается проблема первоначального распределения секретных ключей при вступлении пользователя в сеть. Первоначальный секретный ключ должен быть доставлен по абсолютно надежному каналу связи, иначе весь протокол теряет всякий смысл. Хорошо, если первоначальный ключ может быть выдан лично новому пользователю, однако в некоторых случаях это невозможно, например, при территориальной распределенности сети передачи данных.
Эти и другие недостатки алгоритмов симметричного шифрования обнаружились разработчиками телекоммуникационных сетей при первых попытках построения защищенных систем передачи данных в 70-х годах XX века. Решением проблемы распределения ключей (а также некоторых других серьезных проблем) стало использование несимметричных алгоритмов шифрования, с которыми мы начнем знакомиться уже в следующей лекции.
CTR – режим работы блочного шифра, который позволяет генерировать ключи при поточном шифрования информации.
LFSR (linear feedback
OFB – режим работы блочного шифра, который позволяет генерировать ключи при поточном шифрования информации.
Алгоритм RC4 – алгоритм генерации псевдослучайных чисел. Может использоваться для генерации ключей при поточном шифровании.
Линейный сдвиговый регистр с обратной связью (linear feedback
Сдвиговый регистр с обратной связью состоит из n-битного сдвигового регистра и устройства обратной связи. Когда нужно извлечь бит, все биты
Для генерации ключевого потока при поточном шифровании могут использоваться сдвиговые регистры с обратной связью. Сдвиговый регистр с обратной связью состоит из n-битного сдвигового регистра и устройства обратной связи. Когда нужно извлечь бит, все биты
Можно использовать любой блочный алгоритм, например AES или ГОСТ 28147-89, для поточного шифрования информации, используя режимы
Существуют также алгоритмы генерации псевдослучайных чисел, созданные специально для криптографии. Одним из наиболее известных алгоритмов такого рода является алгоритм RC4. Это алгоритм с ключом переменной длины. На основе ключа алгоритм вырабатывает псевдослучайные числа, используя операции сложения (по некоторому модулю), перестановки и замены элементов внутреннего массива.
Во всех системах, использующих симметричное шифрование, принципиально важной является надежность канала передачи ключа участникам секретных переговоров. Основными проблемами, возникающими в системах управления ключами, являются следующие: большое количество и территориальная распределенность взаимодействующих абонентов, необходимость смены ключей от сеанса к сеансу. Решением проблемы распределения ключей стало использование несимметричных алгоритмов шифрования.
b4=0, b3=0, b2=0, b1=1.b4=1, b3=1, b2=0, b1=1.
n=4, ключ – последовательность чисел 1, 2, 3, 4, 5, 6 ) и найдите z6, z7, z8, z9 и z10.n=4 ) и найдите z1, z2, z3, z4 и z5. В качестве секретного ключа используйте последовательность: 4, 3, 2, 1.Цель лекции: продолжить знакомство с
В теории кодирования и криптографии широко применяются так называемые сдвиговые регистры с обратной связью. Они использовались в аппаратуре шифрования еще до начала массового использования ЭВМ и современных высокоскоростных программных
Сдвиговые регистры с обратной связью могут применяться для получения потока псевдослучайных бит. Сдвиговый регистр с обратной связью состоит из двух частей: собственно ).
(рис 8.1) Сдвиговый регистр с обратной связьюИзвлекать биты из сдвигового регистра можно только по одному. Если необходимо извлечь следующий бит, все биты
Простейшим видом сдвигового регистра с обратной связью является линейный сдвиговый регистр с обратной связью (linear feedback
Для того, чтобы стало понятнее, как работает сдвиговый регистр с обратной связью, рассмотрим 4-битовый
(рис 8.2) Пример 4-разрядного линейного сдвигового регистраЗапишем в изображенный на рисунке регистр начальное значение 1011. Вычислять последовательность
внутренних состояний регистра удобно с помощью таблицы, представленной на таблица 8.1. В таблице отражены первые девять состояний регистра.
На каждом шаге все содержимое регистра сдвигается вправо на один разряд. При этом можно получить в качестве результата один бит. На освободившееся слева место поступает бит, равный результату вычисления функции обратной связи $$f = b_1 \oplus b_4$$. Выходную последовательность генератора псевдослучайных бит образует последний столбец таблицы (извлекаемый бит).
| Номер состояния | Внутреннее состояние регистра b4, b3, b2, b1 | Результат вычисления функции обратной связи $$f = b_1 \oplus b_4$$ | Извлекаемый бит ( b1 ) |
|---|---|---|---|
0 |
1 0 1 1 |
0 | 1 |
1 |
0 1 0 1 |
1 |
1 |
2 |
1 0 1 0 |
1 |
0 |
3 |
1 1 0 1 |
0 |
1 |
4 |
0 1 1 0 |
0 |
0 |
5 |
0 0 1 1 |
1 |
1 |
6 |
1 0 0 1 |
0 |
1 |
7 |
0 1 0 0 |
0 |
0 |
8 |
0 0 1 0 |
0 |
0 |
Линейный сдвиговый регистр размером n бит может находиться в одном из 2n-1 состояний (исключается состояние регистра из одних нулей - при появлении такого состояния далее будут порождаться лишь нули, и о псевдослучаности порождаемой последовательности говорить не приходится).
Поэтому теоретически такой регистр может генерировать псевдослучайную последовательность с максимальным
периодом 2n-1. Линейный сдвиговый регистр с обратной связью будет генерировать циклическую
последовательность битов с максимальным периодом только при выборе в качестве отводной последовательности
определенных бит. Разработана математическая теория, позволяющая выбрать подходящие номера разрядов для бит отводной
последовательности.
Линейные сдвиговые регистры с обратной связью часто использовались и используются до сих пор при шифровании потоков данных. Для повышения криптостойкости в таких устройствах шифрования применяются комбинации нескольких сдвиговых регистров с обратной связью, а также вводятся дополнительные перемешивающие операции. Такие электронные схемы предлагались и выпускались еще до второй мировой войны. Аналогичные принципы заложены и в некоторые
Основным недостатком генераторов псевдослучайных чисел на базе линейных сдвиговых регистров является сложность программной реализации. Сдвиги и
Можно использовать любой блочный алгоритм, например AES или ГОСТ 28147-89, для поточного шифрования информации, используя режимы OFB и CTR блочных шифров.
Название режима OFB (Output FeedBack) переводится как "обратная связь по выходу".
Пусть минимальный блок данных, используемый для передачи, состоит из j бит; обычным значением является j=8 (то есть минимальной порцией передаваемых данных является 1 байт). В режиме f на основе секретного ключа К и некоторого инициализирующего значения Y0 формирует псевдослучайную последовательность j-битовых чисел z1,z2,...,zk, которая затем может использоваться в качестве гаммы для шифрования сообщения. Результат зашифрования является входом процедуры шифрования следующего блока исходного сообщения. На каждом этапе шифрования из зашифрованного блока Yi выбирается j младших битов.
Таким образом, для получения псевдослучайной последовательности используется схема:
Yi=f(Yi-1,K), zi=j младших бит Yi, 1<=i<=k
Если размер блока шифра равен N бит, то параметр j может принимать значения от 1 до N. Значение Y0 называют также инициализирующим вектором.
Последовательность чисел zi можно использовать в качестве гаммы для шифрования потока исходных данных, состоящего из символов хi:
в результате чего получится поток зашифрованных символов yi.
Так как значения yi не зависят от открытого текста xi, то каждый раз, используя одни и те же параметры К и Y0, мы получим одну и ту же последовательность гаммы zi. Поэтому рекомендуется менять значение ключа К для передачи каждого нового сообщения.
Расшифрование сообщений для описанного режима может производиться только с начала последовательности, так как невозможно получить произвольный элемент последовательности zi, не вычислив все предыдущие.
Основное достоинство режима z может быть сформирована заранее для того, чтобы быстро шифровать или расшифровывать поточные сообщения в момент их поступления. Это может быть актуально для систем, обрабатывающих данные в реальном масштабе времени.
Еще одно важное достоинство режима yi, то это приведет к невозможности расшифрования только этого блока и получения одного блока исходных данных xi. Дальнейшая последовательность блоков будет расшифрована корректно.
Название режима CTR происходит от слова "CounTeR" — "счетчик". Этот режим является модификацией режима Y0. Общая формула выглядит следующим образом:
Yi=f(Yi-1+1,K), zi=j старших бит Yi
Преимущество режима z может быть вычислен непосредственно. Этот факт связан с тем, что на каждом шаге Yi увеличивается на единицу, и, следовательно, если нам известен номер шага i, то значение Yi можно вычислить непосредственно, зная Y0 и i по формуле:
Yi=f(Y0+i,K),
Это дает возможность шифровать и дешифровать любые фрагменты сообщения независимо друг от друга.
Алгоритм RC4 разработан Р.Ривестом специально как генератор потока ключевой информации с ключом переменной длины.
RC4 — фактически класс алгоритмов, определяемых размером его блока или слова – параметром n. Обычно n = 8, но можно использовать и другие значения. Для упрощения анализа n=4. Внутреннее состояние RC4 состоит из массива размером 2n слов и двух счетчиков, каждый размером в одно слово. Два счетчика, оба при n=4 4-битовые, назовем i и j. Все вычисления проводятся по модулю 2n.
Массив используется как таблица замен, называемая S-бокс, и далее будет обозначаться как S. В каждый момент времени таблица S содержит все возможные n-битовые (в нашем случае 4-битовые) числа в перемешанном виде. Конкретная перестановка значений в таблице определяется ключом. Так как каждый элемент таблицы принимает значения в промежутке 0 до 15, то его можно трактовать двояко: либо как число, либо как номер другого элемента в таблице.
Алгоритм RC4 состоит из двух этапов. На первом, подготовительном этапе производится инициализация таблицы замен S. На втором, основном этапе вычисляются псевдослучайные числа.
Посмотрим, как инициализируется таблица S. Вначале она заполняется последовательно числами от 0 до 15. Ключ представляется в виде последовательности 4-битовых слов, которыми заполняется другой массив K, такого же размера, как S. Если ключ оказался короче, чем надо, он повторяется нужное число раз. Затем выполняются следующие действия ( алгоритм 1 ):
1. j = 0; i =0; 2. j = (j + Si + Ki) mod 16; 3. поменять местами Si и Sj; 4. i = i +1; 5. если i <16, то перейти на п.2
В результате выполнения этого алгоритма производится начальное заполнение таблицы замен S, причем это начальное перемешивание значений производится в зависимости от секретного ключа.
После того, как таблица S подготовлена, можно начинать генерацию случайных n-битовых слов. Для этого счетчикам i и j присваивается начальное значение 0. Затем для получения каждого нового значения zi выполняются следующие действия ( алгоритм 2 ):
i = (i + 1) mod 16; j = (j + Si) mod 16; поменять местами Si и Sj; a = (Si + Sj) mod 16; zi = Sa.
Полученное 4-битовое значение zi может использоваться в качестве ключа для шифрования очередного 4-битового блока входного потока данных.
Например, пусть секретный ключ состоит из шести 4-битовых значений (приведем их в десятичном виде): 1, 2, 3, 4, 5, 6. Попробуем сгенерировать последовательность чисел по алгоритму RC4.
Заполним таблицу S последовательно числами от 0 до 15.
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Затем подготовим таблицу K, записав в нее ключ необходимое количество раз:
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 |
Затем перемешаем содержимое таблицы S. Для этого будем использовать алгоритм 1, описанный выше.
Процесс выполнения представим в виде трассировочной таблицы (таблица 8.2), в которой укажем все производимые действия. При выполнении вычислений необходимо помнить, что все операции сложения выполняются по модулю 16.
| Номер пункта алг. | Выполняемое действие (по mod 16) | Новое значение i | Новое значение j |
|---|---|---|---|
| 1 | j = 0; i =0 | 0 | |
| 2 | j = j + Si + Ki = 0 + 0 + 1 = 1 | 1 | |
| 3 | Поменять местами Si и Sj, то есть S0 и S1 | ||
| 4 | i = i +1 | 1 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = j + Si + Ki = 1 + 0+ 2 = 3 | 3 | |
| 3 | Поменять местами Si и Sj, то есть S1 и S3 | ||
| 4 | i = i +1 | 2 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (3 + 2 + 3) mod 16 = 8 | 8 | |
| 3 | Поменять местами Si и Sj , то есть S2 и S8 | ||
| 4 | i = i +1 | 3 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (8 + 0 + 4) mod 16 = 12 | 12 | |
| 3 | Поменять местами Si и Sj , то есть S3 и S12 | ||
| 4 | i = i +1 | 4 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (12 + 4 + 5) mod 16 = 5 | 5 | |
| 3 | Поменять местами Si и Sj , то есть S4 и S5 | ||
| 4 | i = i +1 | 5 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (5 + 4 + 6) mod 16 = 15 | 15 | |
| 3 | Поменять местами Si и Sj , то есть S5 и S15 | ||
| 4 | i = i +1 | 6 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (15 + 6 + 1) mod 16 = 6 | 6 | |
| 3 | Поменять местами Si и Sj , то есть S6 и S6 | ||
| 4 | i = i +1 | 7 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (6 + 7 + 2) mod 16 = 15 | 15 | |
| 3 | Поменять местами Si и Sj , то есть S7 и S15 | ||
| 4 | i = i +1 | 8 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (15 + 2 + 3) mod 16 = 4 | 4 | |
| 3 | Поменять местами Si и Sj , то есть S8 и S4 | ||
| 4 | i = i +1 | 9 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (4 + 9 + 4) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S9 и S1 | ||
| 4 | i = i +1 | 10 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 10 + 5) mod 16 = 0 | 0 | |
| 3 | Поменять местами Si и Sj , то есть S10 и S0 | ||
| 4 | i = i +1 | 11 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (0 + 11 + 6) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S11 и S1 | ||
| 4 | i = i +1 | 12 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 0 + 1) mod 16 = 2 | 2 | |
| 3 | Поменять местами Si и Sj , то есть S12 и S2 | ||
| 4 | i = i +1 | 13 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (2 + 13 + 2) mod 16 = 1 | 1 | |
| 3 | Поменять местами Si и Sj , то есть S13 и S1 | ||
| 4 | i = i +1 | 14 | |
| 5 | i < 16, поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (1 + 14 + 3) mod 16 = 2 | 2 | |
| 3 | Поменять местами Si и Sj , то есть S14 и S2 | ||
| 4 | i = i +1 | 15 | |
| 5 | i < 16 , поэтому перейти на п.2 | ||
| 2 | j = (j + Si + Ki ) mod 16= (2 + 7 + 4) mod 16 = 13 | 13 | |
| 3 | Поменять местами Si и Sj , то есть S15 и S13 | ||
| 4 | i = i +1 | 16 | |
| 5 | i < 16 – неверно, поэтому закончить |
После выполнения алгоритма 1 получим инициализированную и подготовленную к основному этапу таблицу S:
| Номер элемента | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| Значение | 10 | 13 | 14 | 12 | 2 | 15 | 6 | 4 | 5 | 3 | 1 | 9 | 8 | 7 | 0 | 11 |
После того как таблица S подготовлена, можно начинать генерацию случайных 4-битовых слов. Вычислим
первые 5 чисел псевдослучайной последовательности, используя алгоритм 2. Результаты вычисления последовательности
значений также представим в виде таблицы (таблица 8.3)
| Выполняемое действие (по mod 16) | Новое знач. i | Новое знач. j | Новое знач. а | |
|---|---|---|---|---|
Вычисление z1 |
1. i = (i + 1) =0+1=1 | 1 | ||
| 2. j = (j + Si) mod 16=(0+13) mod 16=13 | 13 | |||
| 3. Поменять местами S1 и S13 | ||||
| 4. a = (Si + Sj )mod 16=(7+13)mod 16=4 | 4 | |||
| 5. z1 = S4 =2 | ||||
Вычисление z2 |
1. i = (i + 1) =1+1=2 | 2 | ||
| 2. j = (j + Si) mod 16=(13+14) mod 16=11 | 11 | |||
| 3. Поменять местами S2 и S11 | ||||
| 4. a = (Si + Sj )mod 16=(9+14)mod 16=7 | 7 | |||
| 5. z2 = S7=4 | ||||
Вычисление z3 |
1. i = (i + 1) =2+1=3 | 3 | ||
| 2. j = (j + Si) mod 16=(11+12) mod 16=7 | 7 | |||
| 3. Поменять местами S3 и S7 | ||||
| 4. a = (Si + Sj )mod 16=(4+12)mod 16=0 | 0 | |||
| 5. z3 = S0=10 | ||||
Вычисление z4 |
1. i = (i + 1) =3+1=4 | 4 | ||
| 2. j = (j + Si) mod 16=(7+2) mod 16=9 | 9 | |||
| 3. Поменять местами S4 и S9 | ||||
| 4. a = (Si+ Sj )mod 16=(3+2)mod 16=5 | 5 | |||
| 5. z4= S5=15 | ||||
Вычисление z5 |
1. i = (i + 1) =4+1=5 | 5 | ||
| 2. j = (j + Si) mod 16=(9+15) mod 16=8 | 8 | |||
| 3. Поменять местами S5 и S8 | ||||
| 4. a = (Si+ Sj)mod 16=(5+15)mod 16=4 | 4 | |||
| 5. z5 = S4 =3 |
В результате первые пять значений получились следующие: 2, 4, 10, 15, 3. При необходимости получения большего количества случайных чисел можно продолжить вычисления дальше. При n=4 генерируемые числа будут иметь размер 4 бита, то есть иметь значения от 0 до 15.
В рассмотренном примере размер n слова или блока алгоритма принимался равным четырем. Это значение можно брать и другим, например 8 или 16. В случае использования n=8 таблица замен S должна состоять из 28=256 значений, а элементами таблицы замен должны быть числа от 0 до 255. Размер счетчиков i и j должен также изменить до восьми бит (максимальное значение – 255 ). Кроме того, все вычисления в случае n=8 необходимо выполнять по модулю 256. Аналогичные изменения в алгоритме необходимо производить и при других значениях параметра n.
Алгоритм RC4 тщательно изучался криптоаналитиками. В нем не обнаружено каких бы то ни было слабых мест. Помимо высокой устойчивости к криптоанализу, этот алгоритм очень быстр и может использоваться для генерации ключевой последовательности при
Генераторы ПСЧ находят широкое применение в криптографии, например, при
Одной из главных областей применения генераторов случайных чисел является формирование уникальных ключей для шифрования. В любой системе передачи секретных данных требуется множество ключей для всех пользователей системы. В принципе ключи шифрования можно получать с помощью
Наилучшие характеристики будут иметь генераторы случайных чисел, основанные на естественных случайностях реального мира. Например, можно создать ГСЧ, основанные на следующих данных:
Кроме того, параметры других различных физических явлений могут быть положены в основу ГСЧ. К сожалению, многие методики получения настоящих случайных чисел не могут быть реализованы на практике, так как используемый в криптографических целях генератор должен быть компактным, быстрым (генерировать числа за доли секунды), независящим от внешних факторов и условий окружающей среды.
Тем не менее, разработчики интегральных схем конструируют и производят аппаратные ГСЧ, основанные на разных принципах. Например, разработан способ с использованием двух конденсаторов типа "металл - диэлектрик - полупроводник". Случайное значение является функцией разности зарядов этих конденсаторов. В другом устройстве обрабатывается и используется значение температурного шума полупроводникового диода.
Предлагаются и программно-аппаратные методы для получения случайных чисел. Известны методы, основанные на шуме звуковой карты персонального компьютера, значении счётчика тактов процессора, скорости вращения жесткого диска компьютера, значении
Рассмотрим еще раз общую структуру секретной системы, представленную в . Схема структуры такой системы изображена на рис 8.3.
(рис 8.3) Общая структура секретной системы, использующей симметричное шифрованиеОтправитель, представляющий собой источник сообщений, и получатель (приемник зашифрованных сообщений) договариваются о выборе приемлемого шифра и ключа. Затем отправитель шифрует свое сообщение с использованием выбранного алгоритма шифрования и ключа и пересылает полученный шифротекст по (открытому) каналу связи. Получатель расшифровывает его, используя шифр и ключ.
Противник, скорее всего, может перехватить зашифрованное сообщение, так как предполагается, что оно передается по открытому каналу связи. В этом случае криптоаналитик противника может попытаться вскрыть шифротекст. Будем предполагать, что отправитель и получатель сообщения используют достаточно
Таким образом, принципиальной является надежность канала передачи ключа участникам секретных переговоров. Самым надежным способом первоначального распределения ключей является обмен ключами при личной встрече абонентов сети передачи данных. Для доставки ключей можно также использовать специальных курьеров. Если в обмене секретными сообщениями планируется участие небольшого количества сторон, например, двух или трех, то оба указанных способа вполне допустимы. Если же количество взаимодействующих абонентов велико, то задача распределения ключей превращается в настоящую проблему.
При использовании секретных ключей существуют и другие трудности. Например, ключи должны время от времени меняться. Это связано с тем, что чем дольше используется ключ, тем больше вероятность его компрометации (раскрытия). Чем дольше используется ключ, тем больше потери от его компрометации, так как тем большее количество сообщений сможет раскрыть злоумышленник при получении ключа. Даже если ключ не будет раскрыт, проводить криптоанализ противнику удобнее, имея в своем распоряжении достаточное количество сообщений, зашифрованных одним и тем же ключом. Оптимальным считается использовать для каждого сеанса обмена зашифрованными сообщениями свой уникальный ключ – так называемый сеансовый ключ. Но где взять такое количество ключей для большой телекоммуникационной сети и как их распределять?
Таким образом, при большом числе взаимодействующих сторон требуется предварительная рассылка значительного количества ключей, а также последующее их хранение и при необходимости – смена. Предположим, в локальной сети имеется 100 пользователей. Пусть пользователи сети желают обмениваться секретными данными друг с другом по принципу "каждый с каждым". В этом случае для каждой пары пользователей необходим свой секретный ключ для шифрования сообщений. Из ста пользователей можно составить 100x99/2=4950 пар, следовательно, в системе передачи данных будут использоваться 4950 разных секретных ключей. Все эти ключи должны быть сгенерированы и распределены надежным образом. Кроме того, каждый из ста пользователей должен помнить 99 разных ключей, каждый для определенного абонента. Если же в обмене сообщениями участвует не сто, а тысяча человек, то задача управления ключами становится чрезвычайно сложной.
В связи с указанными трудностями на практике применяются специальные автоматизированные системы управления ключами. Такие системы позволяют генерировать ключи, хранить их и архивировать, восстанавливать утерянные ключи, заменять или изымать из обращения старые и ненужные ключи. Важнейшей частью системы управления ключами является центр распределения ключей (Key Distribution Center –
Специалистами разработаны специальные процедуры (или протоколы), которые позволяют центру распределения ключей доставлять пользователям ключи для проведения отдельных сеансов связи ( сеансовые ключи ). К сожалению, все протоколы с использованием симметричного шифрования имеют те или иные недостатки. Рассмотрим один из возможных
Предположим, при вступлении в сообщество пользователей сети обмена данными
Указанный протокол достаточно прост и может быть автоматизирован с помощью, например, программы передачи данных. Однако приведенная процедура распределения сеансовых ключей имеет несколько явных недостатков.
Первым недостатком данной системы является то, что Центр участвует во всех обменах. Сбои в работе Центра нарушат работу всей системы.
Вторым недостатком является то, что центр распределения ключей должен хранить в каком-либо виде секретные ключи всех абонентов сети. Если злоумышленник найдет доступ к секретным ключам пользователей системы ("взломает" систему, подкупит администратора и т.д.), то он сможет читать и изменять все передаваемые сообщения.
И, наконец, остается проблема первоначального распределения секретных ключей при вступлении пользователя в сеть. Первоначальный секретный ключ должен быть доставлен по абсолютно надежному каналу связи, иначе весь протокол теряет всякий смысл. Хорошо, если первоначальный ключ может быть выдан лично новому пользователю, однако в некоторых случаях это невозможно, например, при территориальной распределенности сети передачи данных.
Эти и другие недостатки алгоритмов симметричного шифрования обнаружились разработчиками телекоммуникационных сетей при первых попытках построения защищенных систем передачи данных в 70-х годах XX века. Решением проблемы распределения ключей (а также некоторых других серьезных проблем) стало использование несимметричных алгоритмов шифрования, с которыми мы начнем знакомиться уже в следующей лекции.
CTR – режим работы блочного шифра, который позволяет генерировать ключи при поточном шифрования информации.
LFSR (linear feedback
OFB – режим работы блочного шифра, который позволяет генерировать ключи при поточном шифрования информации.
Алгоритм RC4 – алгоритм генерации псевдослучайных чисел. Может использоваться для генерации ключей при поточном шифровании.
Линейный сдвиговый регистр с обратной связью (linear feedback
Сдвиговый регистр с обратной связью состоит из n-битного сдвигового регистра и устройства обратной связи. Когда нужно извлечь бит, все биты
Для генерации ключевого потока при поточном шифровании могут использоваться сдвиговые регистры с обратной связью. Сдвиговый регистр с обратной связью состоит из n-битного сдвигового регистра и устройства обратной связи. Когда нужно извлечь бит, все биты
Можно использовать любой блочный алгоритм, например AES или ГОСТ 28147-89, для поточного шифрования информации, используя режимы
Существуют также алгоритмы генерации псевдослучайных чисел, созданные специально для криптографии. Одним из наиболее известных алгоритмов такого рода является алгоритм RC4. Это алгоритм с ключом переменной длины. На основе ключа алгоритм вырабатывает псевдослучайные числа, используя операции сложения (по некоторому модулю), перестановки и замены элементов внутреннего массива.
Во всех системах, использующих симметричное шифрование, принципиально важной является надежность канала передачи ключа участникам секретных переговоров. Основными проблемами, возникающими в системах управления ключами, являются следующие: большое количество и территориальная распределенность взаимодействующих абонентов, необходимость смены ключей от сеанса к сеансу. Решением проблемы распределения ключей стало использование несимметричных алгоритмов шифрования.
b4=0, b3=0, b2=0, b1=1.b4=1, b3=1, b2=0, b1=1.
n=4, ключ – последовательность чисел 1, 2, 3, 4, 5, 6 ) и найдите z6, z7, z8, z9 и z10.n=4 ) и найдите z1, z2, z3, z4 и z5. В качестве секретного ключа используйте последовательность: 4, 3, 2, 1.Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.