
- •Методы защиты информации в компьютерных технологиях Москва 2011
- •1. Основные направления криптологии.
- •2. Методы криптографических преобразований с открытым ключом.
- •2.1. Алгоритм нахождения числа по модулю.
- •2.2. Вычисление обратных величин в модулярной алгебре.
- •2.3. Алгоритм операции возведения числа в степень по модулю.
- •2.4. Определение односторонней функции.
- •3. Алгоритмы формирования и функционирования криптографических систем с открытым ключом.
- •3.1. Алгоритм криптографической системы rsa (Райвест-Шамир-Адлеман).
- •3.2. Алгоритм криптографической системы на основе вычисления дискретных логарифмов в конечном поле – алгоритм Эль Гамаля.
- •3.3. Алгоритм функционирования криптографической системы на основе дискретного логарифмирования в метрике эллиптических кривых.
- •3.3.1. Основные операции криптографических преобразований в метрике эллиптических кривых.
- •3.4. Преобразование Диффи-Хеллмана в системах криптографии с открытым ключом.
- •XcxпШифратор
- •3.5. Формирование криптограмм открытых сообщений и их дешифрование с использованием методов дискретного логарифмирования в метрике эллиптических кривых.
- •4.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •4.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •4.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •4.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •4.1.6. Вычисление координат точки [64]g , как результат удвоения точки [32]g:
- •4.1.7. Вычисление координат точки [128]g , как результат удвоения точки [64]g:
- •4.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •5. Алгоритм формирования открытого ключа абонента в.
- •5.1. Вычисление множеств точек удвоения заданной эллиптической кривой.
- •5.1.3. Вычисление точки [8]g, как результат удвоения точки [4]g:
- •5.1.4. Вычисление точки [16]g , как результат удвоения точки [8]g:
- •5.1.5. Вычисление точки [32]g , как результат удвоения точки [16]g:
- •5.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •5.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •5.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой ( [2]g; [4]g; [16]g; [32]g; [128]g ).
- •6. Вычисление парного сеансового ключа шифрования-дешифрования для абонентов а и в на основе преобразований Диффи-Хеллмана.
- •6.1. Действие абонента в.
- •6.1.1. Вычисление точки [2]коа , как результат удвоения точки коа:
- •6.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [2]коа; [4] коа; [16] коа; [32] коа; [128]коа).
- •7. Дешифрование абонентом а криптограммы, полученной от абонента в с использованием парного секретного симметричного ключа, сформированного по методу Диффи-Хеллмана в метрике эллиптических кривых.
- •7.1. Вычисление удвоений множества точек заданной эллиптической кривой на стороне абонента «а» по значению точки ков, характеризующей открытый ключ абонента «в».
- •7.1.1. Вычисление значения удвоения точки ков – [2]ков:
- •7.2. Вычисление композиций различных точек удвоения заданной эллиптической кривой: [4]ков; [8]ков; [32]ков; [64]коа; [128]ков).
- •7. 3. Дешифрование абонентом «а» криптограммы с, полученной от абонента «в».
- •4. Алгоритмы электронной цифровой подписи.
- •4.1. Алгоритм электронной цифровой подписи rsa (Райвест-Шамир-Адлеман).
- •4.2. Алгоритм электронной цифровой подписи Эль Гамаля (egsa). Egsa (el Gamal Signature Algorithm).
- •4. 3. Алгоритм электронной цифровой подписи dsa (Digital Signature Algorithm).
- •4.4. Алгоритм электронной цифровой подписи гост р34.10-94. (Отечественный стандарт электронной цифровой подписи).
- •4.5. Алгоритм электронной цифровой подписи гост р34.10-2001. (Отечественный стандарт электронной цифровой подписи).
- •3.1. Вычисление множества точек удвоения заданной эллиптической кривой.
- •3.1.3. Вычисление координат точки [8]g, как результат удвоения точки [4]g:
- •3.1.4. Вычисление координат точки [16]g , как результат удвоения точки [8]g:
- •3.1.5. Вычисление координат точки [32]g , как результат удвоения точки [16]g:
- •3.1.6. Вычисление точки [64]g , как результат удвоения точки [32]g:
- •3.1.7. Вычисление точки [128]g , как результат удвоения точки [64]g:
- •3.2. Вычисление композиций точек удвоения [4]g; [8]g; [32]g; [64]g; [128]g заданной эллиптической кривой.
- •4. Действие абонента-отправителя (абонента «а») по формированию электронной цифровой подписи электронного сообщения «м».
- •4.3.2. Вычисление композиций точек удвоения [256]g; [64]g; [16]g; [8]g; [2]g; g заданной эллиптической кривой.
- •4.3.2.3. Вычисление композиции точек [336]g и [8]g;
- •4.3.2.4. Вычисление композиции точек [344]g и [2]g;
- •4.3.2.5. Вычисление композиции точек [346]g и g;
- •4.5. Вычисление параметра электронной цифровой подписи Si .
- •5. Действия абонента «в» по приему и аутентификации подписанного электронного сообщения «м».
- •5.5.2. Вычисление композиции точек [32]g и [8]g;
- •5.5.3. Вычисление композиции точек [40]g и [4]g;
- •5.5.5. Вычисление композиций точек удвоения
- •5.5.5.1. Вычисление композиции точек [128]коа и [64]коа;
- •5.5.5.2. Вычисление композиции точек [192]коа и [32]коа;
- •5.5.5.3. Вычисление композиции точек [224]коа и [2]коа;
- •5.5.5.4. Вычисление композиции точек [u1]g и [u2]коа;
- •5.5.5.5. Сравниваются вычисленные значения параметра «r», принятого в составе эцп от абонента-отправителя и значения абсциссы точки «q» → «xq», вычисленное абонентом получателем.
- •6. Элементы симметричных криптографических преобразований.
- •6.2. Табличное шифрование методом перестановки по ключевому слову или фразе, задающими перестановку.
- •6.3. Табличное шифрование методом двойной перестановки.
- •6.5. Шифры сложной замены.
- •7. Корректирующие коды.
- •6. 1. Блочные коды.
- •6.1.1. Систематические коды.
- •6.1.2. Корректирующие коды с обнаружением искажений, применяемые в системах передачи и обработки информации.
- •7. Windows-кодирование.
- •7.1. Преобразование Windows-кодирования - коды Грея.
- •7.2. Преобразование Windows-кодирования в систематические коды.
- •7.3. Преобразование Windows-кодирования в коды Хэмминга.
- •7.5. Преобразование Windows-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
7. Windows-кодирование.
На сегодняшний день наиболее распространенной исходной системой кодирования является Windows-кодирование, элементы кодовых комбинаций которой представлены в таблице 4.12.
Таблица 4.12
Windows-кодирование
В приведенной таблице a0 ... a7 элементы кодовых комбинаций (a0-младший разряд, a7-старший разряд).
Для закрепления рассмотренного выше материала изучим процесс повышения достоверности и защиты информации от несанкционированного доступа с использованием преобразований исходных кодовых комбинаций Windows-кодирования (CP-1251) на множествах кодирования с обнаружением и исправлением искажений (коды Грея, систематические коды, коды Хэмминга, циклические коды, коды БЧХ).
7.1. Преобразование Windows-кодирования - коды Грея.
Исходный символ Исходная кодовая комбинация Код Грея
Т = 11001011 11001011
11001011
10101110
7.2. Преобразование Windows-кодирования в систематические коды.
Пример: построить систематический код с исправлением одиночных искажений S=1, с числом информационных элементов k=8.
1.Определение минимального кодового расстояния систематического dmin=2s+1=21+1=3.
2.Определение общего количества элементов систематического кода
Np
256
, откуда
n=13.
3.Определение числа проверочных элементов систематического кода r=n-k=13-8=5.
4.Из полного множества кодовых комбинаций, состоящих из 5 элементных кодов, выбираются 8 кодовых комбинаций, вес каждой из которых pdmin-1.
3 - 1 = 2 (00011, 00101, 00110, 01001, 01010, 01100, 11000).
5.Построение
производящей матрицы систематического
кода G
.
-
100000000 00011
010000000 00101
=
000100000 01001
000010000 01010
00000100 011000
00000010 100100
00000001 110000
6.Определение r проверочных элементов по известным информационным элементам.
6.1.Построение проверочной матрицы H
Для построения проверочной матрицы H необходимо построить подматрицу D
-
00000011
D =
0001110101100100
10101010
11010000
-
a1a2a3 a4 a5 a6 a7 a8 b1 b2 b3 b4 b5
H =
0 0 0 0 0 0 1 1 1 0 0 0 00 0 0 1 1 1 0 1 0 1 0 0 0
0 1 1 0 0 1 0 1 0 0 1 0 0
1 0 1 0 1 0 1 0 0 0 0 1 0
1 1 0 1 0 0 0 0 0 0 0 0 1
По
полученной проверочной матрице H
определяются
проверочные элементы b
,
b
,
b
, b
,
b
b
=a
a
b
=a
a
a
a
b =a a a a (33)
b =a a a a
b =a a a
По полученным формулам из исходной кодовой комбинации Windows-кодирования образуется любая комбинация систематического кода, исправляющего одиночные искажения.
Например: букваТ русского алфавита в системе Windows-кодирования имеет вид
a a a a a a a a a1a2a3a4a5a6a7a8b1b2b3b4b5
Т 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1
b1=1 0=1
b2=1 0 0 0=1
b3=1 0 0 0=1
b4=1 0 0 1=0
b5=1 1 1=1
В этом случае общий вид систематического кода при преобразовании семантического элемента Windows-кодирования имеет вид
Ni=a1a2a3a4a5a6a7a8b1b2b3b4b5 (34)
Преобразуя по полученным формулам (33, 34) исходные в системе Windows-кодирования двоичные кодовые комбинации семантического алфавита, получим полное множество его отображений в систематических кодах, обнаруживающих и исправляющих возникающие при их передаче по каналам связи искажения.
При декодировании принятых кодовых комбинаций систематического кода Windows-кодирования алгоритм распознавания искажений кодовых комбинаций определяется следующими уравнениями:
b
=b1
a7
a8
b
=b2
a4
a5
a6
a8
b
=b3
a2
a3
a6
a8
(35)
b
=b4
a1
a3
a5
a7
b
=b5
a1
a2
a4
Например при передаче Windows-кода буквы Т =110100101110 произошло искажение, и принята комбинация Т=1101011011101 (искажение в 6-ом разряде, передан 0 принята 1).
Определяем проверочные символы b ... b (в рассматриваемом примере a1=1,a2=1, a3=0, a4=1, a5=0, a6=1, a7=1, a8=0, b1=1, b2=1, b3=1, b4=0, b5=1).
b =1 1 0=0
b =1 1 0 1 0=1
b =1 1 0 1 0=1
b =0 1 0 0 1=0
b =1 1 1 1=0
Равенство уравнений b и b единице указывает, что при приеме произошло искажение. Искаженным может быть один из элементов b2, b3, a2, a3, a4, a5, a6, a8, но элементы a2, a3, a4, a5, a8 входят в уравнения b , b , b и искаженными быть не могут. Остается распознать элементы b2, b3, a6.
Элемент a6 входит в оба уравнения, содержащих искаженный элемент (b и b ), следовательно, он и искажен. Заменяя в элементе a6 значение 1 на 0, получим исправленную кодовую комбинацию Т = 1101001011101.