
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
4.4. Алгоритм электронной цифровой подписи гост р34.10-94. (Отечественный стандарт электронной цифровой подписи).
Федеральный Закон №1 от 10 января 2002 года «Об электронной цифровой подписи» объявил о принятии на эксплуатацию в сетевых компьютерных технологиях государственных и частнопредпринимательских организаций и предприятий системы аутентификации электронных сообщений, реализованной в соответствии с ГОСТ Р34.10-2001. Однако, ряд систем, находящихся на эксплуатации в банковских системах, системах управления производственными технологическими процессами, системах государственного административного управления, построено в соответствии с ГОСТ Р34.10-94.
Системы аутентификации электронных сообщений, реализованные в соответствии с ГОСТ Р34.10-2001, являются модификацией систем, реализованных в соответствии с ГОСТ Р34.10-94 поэтому целесообразно изначально рассмотреть алгоритм функционирования ЭЦП по ГОСТ Р34.10-94, а затем перейти к изучению алгоритма ГОСТ Р34.10-2001.
Необходимо отметить, что алгоритм цифровой подписи, определяемый стандартом ГОСТ Р34.10-94, по построению и функционированию во многом совпадает с алгоритмом аутентификации DSA.
Действия абонента-отправителя электронного сообщения по формированию электронной цифровой подписи.
1. Абонент-отправитель случайным образом выбирает большое простое число «Р» и простое число «q», которое является делителем числа (Р-1).
Размер чисел «Р» и «q» составляет 512 < L < 1024 бит. Для примера выбираются следующие числа: Р = 887; q = 443.
2. На втором шаге алгоритмизации абонент-отправитель задает случайным образом целое число «а» при соблюдении следующих ограничений:
а < (Р-1) и аq mod P = 1. Для примера число «а» принимается равным а = 16 (16443 mod 887 = 1 mod 887 → 1).
3. После определения чисел P; q; a случайным образом задается значение закрытого (секретного) ключа абонента-отправителя при условии, что его значение должно быть целым числом меньше значения числа q (1<КЗА<q). В заданном примере закрытый ключ принимается равным КЗА =312.
4. По заданному случайным образом числовому значению закрытого ключа абонент-отправитель производит вычисление значения своего открытого ключа по следующей зависимости: КОА = mod P.
По приведенному примеру это значение определится как:
КОА = 16312 mod 887 = 38404760576 mod 887 = 482 mod 887 → 482.
Следовательно, значение открытого ключа абонента-отправителя (абонента А) определяется как: КОА = 482.
5. Открытыми параметрами системы аутентификации электронных сообщений являются параметры P; q; a; КОА (в числовом примере эти параметры определены как: P = 887; q = 443; a = 16; КОА = 482). Числовые значения этих параметров передаются по открытым каналам телекоммуникаций всем абонентам корпоративной информационной системы для реализации функции проверки ЭЦП – установления достоверности принимаемого сообщения «М», т.е. для выполнения процесса аутентификации сообщения «М» абонентом-получателем (абонентом В).
6. Далее абонент-отправитель вычисляет значение функции хеширования передаваемого им сообщения «М» → h(M)в. Для примера в качестве сообщения «М» задается слово «Криптон».
h(M)в → {52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42}.
7. Для составления криптограммы числовых значений функции хеширования h(M)в абонент-отправитель случайным образом задает число «к» при соблюдении условия ограничения 1 < к < q (для примера 1 < к < 443). Принимается значение к = 347.
8. На следующем шаге алгоритмизации производится вычисление значения параметра «r» в соответствии со следующей зависимостью:
r = (aк mod P) mod q
Для принятых значений P=887; q=443; a=16; к=347 значение параметра «r» определится как: r = (16347 mod 887) mod 443 = (26 mod 887) mod 443 = = 26 mod 443 → 26. Параметр ЭЦП «r» является постоянным для всего множества числовых значений элементов функции хеширования сообщения «М».
9. После вычисления параметра ЭЦП «r» абонент-отправитель сообщения «М» производит шифрование каждого элемента функции хеширования h(M)в с помощью закрытого (секретного) ключа КЗА абонента-отправителя в соответствии со следующей зависимостью:
Si = (mi * к + r * КЗА) mod q
По принятым для примера и вычисленным значениям mi; к; r; КЗА вычисляются значения Si для функции хеширования подписываемого сообщения «М» → «Криптон»:
Si = (mi * 347 + 26 * 312) mod 443
Где: mi – числовые значения элементов функции хеширования сообщения «М».
Si = (mi * 347 + 8112) mod 443
Si → {19 403 19 403 211 93 152 152 285 78 403 403 211 270 152 93 19 78 78 19 211 211 211 211 344 19 403 403 270 211 152 93}.
После вычисления отдельных криптогроафических значений всех элементов функции хеширования сообщения «М» и параметра «r» формируется криптограмма функции хеширования, которая включает в свой состав параметр «r» и криптографические значения элементов функции хеширования Si.
ЭЦП → S → Ch(M) → {r, Si} → {26 19 403 19 403 211 93 152 152 285 78 403 403 211 270 152 93 19 78 78 19 211 211 211 211 344 19 403 403 270 211 152 93} → 92Т2Тт|··\mТТтM·|2mm2тттт—2ТТMт·|
После вычисления электронной цифровой подписи сообщение «М» вместе с ЭЦП передается по телекоммуникационным каналам абоненту-получателю (абоненту В).
Действия абонента-получателя (абонента В) по аутентификации принятого электронного сообщения «М» (проверка ЭЦП).
10. Получив ЭЦП передаваемого сообщения «М» и само сообщение «М» абонент-получатель (абонент «В») производит вычисление функции хеширования принятого сообщения «М» → h(M)в. В рассматриваемом примере при передаче сообщения М → «Криптон» функция хеширования определится как:
h(M)в → {52 48 52 48 50 42 46 46 40 56 48 48 50 54 46 42 52 56 56 52 50 50 50 50 44 52 48 48 54 50 46 42}.
11. После вычисления функции хеширования h(M)в принятого сообщения «М» абонент-получатель вычисляет значение параметра «Vi»:
Vi = ( miq-2 ) mod q
Для рассматриваемого примера:
Vi = (miq-2 ) mod q = (mi441 ) mod 443
Следовательно, множества значений Vi для множества семантических элементов принятого сообщения «М» → {m1 m2 … mi} определится как:
Vi → {213 120 213 120 381 327 183 183 144 356 120 120 381 402 183 327 213 356 356 213 381 381 381 381 292 213 120 120 402 381 183 327}.
12. На следующем шаге алгоритмизации абонентом «В» производится вычисление параметров «Z1i» и « Z2i» в соответствии со следующими зависимостями:
Z1i
= (Si
Vi)
mod q
Z2i = ((q – r) Vi ) mod q
Для рассматриваемого примера:
Z1i = (Si Vi) mod q → {60 73 60 73 208 287 350 350 284 302 73 73 208 5 350 287 60 302 302 60 208 208 208 208 330 60 73 73 5 208 350 287}.
Z2i = ((q – r) Vi ) mod q → ((443 – 26) Vi ) mod 443 → (417 Vi ) mod 443 → {221 424 221 424 283 358 115 115 243 47 424 424 283 180 115 358 221 47 47 221 283 283 283 283 382 221 424 424 180 283 115 358}.
13. После вычисления параметров «Z1i» и « Z2i» с помощью открытого ключа абонента-отправителя (абонента «А») - КОА сообщения «М» производится вычисление параметра «Ui» :
Ui
= ((
*
) mod P) mod q
Для численных значений рассматриваемого примера а = 16 (пункт 2); КОА = 482 (пункт 4); Р = 887 и q = 443 (пункт 1) множества значений параметра Ui определятся как:
Ui
= ((
*
) mod P) mod q = ((
*
)
mod 887) mod 443 → {26
26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26
26 26 26 26 26 26 26 26}.
14. Производится сравнение вычисленных значений Ui с числовым значением параметра «r», принятого в составе электронной цифровой подписи от абонента-отправителя и в случае их полного поэлементного совпадения сообщение «М» признается достоверным (Рис.10) , в противном случае сообщение «М» признается модифицированным (Рис.11).
Рис. 10. Аутентификация достоверного сообщения «Криптон».
Рис.11. Выявление факта модификации электронного сообщения «Криптон».