
- •Методы защиты информации в компьютерных технологиях Москва 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.3. Преобразование Windows-кодирования в коды Хэмминга.
Цель преобразования - отобразить символы Windows-кодирования в коды Хэмминга, обнаруживающих и исправляющих одиночные искажения (t=1, S=1).
1.Определение минимального кодового расстояния
d=t+S+1=1+1+1=3
2.Определение общего числа элементов кодовых комбинаций Хэмминга - n.
Np
.
Множество разрешенных кодовых комбинаций в системе Windows-кодирования составляет Np=219, следовательно, 219 , откуда n=12.
3. Определение числа информационных элементов k.
2k 219 k=8.
4. Определение числа проверочных элементов r.
r = n-k =12-8 = 4.
5. Построение производящей матрицы кода G12,8 (12 столбцов, 8 строк). Для чего из состава 2r = 24 =16 проверочных комбинаций для построения производящей матрицы выбирается k=8 комбинаций с весом
pdmin-1=3-1=2.
Например: 0011, 0101, 0110, 0111, 1001, 1010, 1011, 1100 (как и для случая построения систематических кодов). Производящая матрица G12,8 имеет вид, такой же как и для случая систематического кода.
-
C12,8 =
10000000 001101000000 0101
00100000 0110
00010000 0111
00001000 1001
00000100 1010
00000010 1011
00000001 1100
6. Построение проверочной матрицы на основании производящей матрицы G12,8. Напоминаем, что для построения проверочной матрицы H12,4 в первую строку вписывается первый столбец проверочных элементов производящей матрицы G12,8, во вторую строку второй столбец и т.д. Справа ко всем строкам приписываются кортежи единичной матрицы.
-
H12,4= =
a1a2a3a4a5a6a7a8 b1b2b3b40 0 0 0 1 1 1 1 1 0 0 0
0 1 1 1 0 0 0 1 0 1 0 0
1 0 1 1 0 1 1 0 0 0 1 0
1 1 0 1 1 0 1 0 0 0 0 1
7.Преобразуем
проверочную матрицу
перераспределением
ее элементов таким образом, чтобы кодовая
комбинация кортежа столбца указывала
в двоичной форме на номер столбца
проверочной матрицы
-
H12,4 =
e1e2 e3 e4u1u2u3u4u5u6u7u8u9u10u11u12
0 0 0 0 0 0 0 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1
0 1 1 0 0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0 1 0 1 0
Проверочная матрица систематизирована в порядке возрастания номера столбца.
8. По построенной проверочной матрице составляется r=4 проверочных уравнений. Проверочные уравнения составляются по представлению элемента единичной матрицы (е1, е2, е3, е4) в виде сумм по модулю 2 элементов строк матрицы со значением 1
e1=u3 u5 u7 u9 u11
e2=u3 u6 u7 u10 u11
e3=u5 u6 u7 u12
e4=u9 u10 u11 u12
Уравнения е1, е2, е3,е4 являются кодообразующими уравнениями преобразования Windows-кодирования в коды Хэмминга.
Например для преобразования семантического алфавита символа Т из Windows-кодирования в код Хэмминга необходимо определить проверочные элементы е1, е2, е3, е4 и составить кодовую комбинацию Хэмминга.
Так символ Т в Windows-кодировании определен как Т11010010, в этом случае u3=1, u5=1, u6=0, u7=1, u9=0, u10=0, u11=1, u12=0, u1=e1, u2=e2, u4=e3,u8=e4.
e1=1 1 1 0 1=0
e2=1 0 1 0 1=1
e3=1 0 1 0=0
e4=0 0 1 0=1
Преобразованная кодовая комбинация символа Т из Windows-кодирования в код Хэмминга имеет вид
Tu1u2u3u4u5u6u7u8u9u10u11u12011010110010.
Таким образом преобразование семантического символа имеет вид:
Т11010010011010110010.
Декодирование кодовых комбинаций и исправление искажений происходит по следующим уравнениям (для случая Windows-кодирование - код Хэмминга):
e =u1 u3 u5 u7 u9 u11
e =u2 u3 u6 u7 u10 u11
e =u4 u5 u6 u7 u12
e =u8 u9 u10 u11 u12
Например при передаче символа Т в третьем разряде произошло искажение и кодовая комбинация принята в виде Т=011010110110
e1 e2 e3 e4
T=u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12
0 1 1 0 1 0 1 1 0 1 1 0
e =0 1 1 1 0 1=0
e =1 1 0 1 1 1=1
e =0 1 0 1 0=0
e =1 0 1 1 0=1
В этом случае синдром равен 1010 10, т.е. в десятичной системе счисления синдром равен 10, что указывает на искажение десятого элемента принятой кодовой комбинации. Заменяя значение десятого элемента принятой кодовой комбинации 1 на 0 , получают исправленную кодовую комбинацию Т=011010110010, т.е. восстанавливают без искажений на приемной стороне переданную кодовую комбинацию.
7.4. Преобразование Windows-кодирования в циклические коды. Например, построим кодовую комбинацию циклического кода F(x) с числом информационных элементов k=8 (число элементов Windows-кода для кодирования одного элемента семантического алфавита, исправляющего одиночные искажения (S=1).
1.Определение общего числа элементов кодовых комбинаций циклических кодов Np 219 , откуда n=12.
2. Определение числа проверочных элементов r=n-k=12-8=4.
Следовательно, степень образующего многочлена (P(x)) равна 4.
3.В качестве образующего многочлена выбирают один из неприводимых многочленов, например P(x)=x4+x+1.
Для примера из системы Windows-кодирования в качестве преобразуемой кодовой комбинации Q(x) взята кодовая комбинация, отображающая символ Т русского алфавита (Q(x)=11010010x7+x6+x4+x.
5. Определяем произведение Q(x)xr.
Q(x)xr=(x7+x6+x4+x)x4=x11+x10+x8+x5
6. Определение частного G(x) и остатка R(x)
G(x)+R(x)=
=
=x7+x6+x2+x
(x3+x)
Следовательно, G(x)=x7+x6+x2+x, R(x)=x3+x.
7. Определение кодового многочлена F(x).
F(x)=Q(x)xr+R(x)=(x11+x10+x8+x5)+(x3+x)=x11+x10+x8+x5+x3+x=
=110100101010.
Где: 11010010 - информационные элементы преобразованного Windows-кода символа Т в циклический код.
1010 - проверочные элементы циклического кода символа Т.
Остальные кодовые комбинации циклического кода отображают кодовые комбинации Windows-кодирования по тому же алгоритму преобразования, что и для символа Т (пункты 4, 5, 6, 7).
Произведем проверку полученной кодовой комбинации на возможность исправления ошибок.. Допустим, произошло искажение при передаче по линии связи кода Т 110100101010 в четвертом разряде и принят код Т 110100100010.
Разделим принятую искаженную кодовую комбинацию на образующий многочлен P(x)=x4+x+110011
110100100010 10011
10011
10010
10011
11000
10011
10111
10011
1000 остаток.
Сравнивается вес остатка (р=1) с числом исправляемых искажений (S=1), p=S, условие pS выполняется.
4. Производится суммирование по модулю 2 делимого 110100100010 с остатком 1000, получают комбинацию
110100100010
1000
110100101010
Получили исправленную кодовую комбинацию.
Общий вид такого исправления может быть отображен в следующей форме
Передаваемый Передаваемый Принятый Восстановленный
символ код код код
Т 110100101010 110100100010 110100101010.