
- •Методы защиты информации в компьютерных технологиях Москва 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. 3. Алгоритм электронной цифровой подписи dsa (Digital Signature Algorithm).
Алгоритм электронной цифровой подписи DSA был разработан NIST США в 1991 году и предложен для использования в процессах аутентификации электронных документов в стандарте цифровой подписи DSS (Digital Signature Standard).
Алгоритм ЭЦП DSA основан на методе дискретного логарифмирования в конечном поле и модифицирован на теоретико-прикладных разработок К. Шнорра. Широкое использование технологии DSA обеспечивает эффективное использование операции подписывания электронных сообщений в вычислительных системах малой мощности в приложениях со смарт-картами. Процесс проверки ЭЦП реализуется в более мощной вычислительной среде аппаратно-программного криптографического модуля.
По сравнению с алгоритмами RSA и Эль Гамаля алгоритм DSA при достаточном уровне криптостойкости размер числовых значений двух основных параметров системы аутентификации составляет от 512 до 1024 бит, числовые значения вспомогательных параметров составляют 160 бит. Основные вычислительные операции производятся по модулю, размер которого составляет 160 бит, что упрощает и сокращает вычислительные процессы. Вычислительные процедуры проверки ЭЦП также производятся по модулю размером 160 бит.
Действия абонента-отправителя по формированию электронной цифровой подписи сообщения «М».
1. Абонент-отправитель случайным образом выбирает большое простое число «Р» и простое число «q», которое является делителем числа (Р-1). Размерность чисел «Р» и «q» составляет порядка 512 < L < 1024 бит, для примера числа «Р» и «q» принимаются равными Р = 887; q = 443.
2.
Затем абонент-отправитель (абонент «А»)
генерирует число «d»
при соблюдении следующих условий
ограничения 1 < d
< (Р-1) и
mod
P
> 1. Число «d»
в качестве примера принимается равным
d
= 18.
3. После детерминирования чисел P; q; d вычисляется значение параметра «G» по следующей формуле:
G = mod P
В соответствии с заданными числовыми значениями параметр «G» определяется как:
G
=
mod P =
mod 887 = 182
mod 887 = 324 mod 887 → 324.
4. Случайным образом производится выбор значения закрытого (секретного) ключа абонента-отправителя (абонента «А») – КЗА; КЗА принимается равным 312 (КЗА = 312). Закрытый ключ абонента отправителя служит для формирования ЭЦП передаваемого сообщения «М».
5. По принятым параметрам G; КЗА; P производится вычисление открытого ключа абонента-отправителя КОА:
КОА = mod P = 324312 mod 887 = 249 mod 887 → 249.
6. Открытыми параметрами системы аутентификации электронных сообщений, построенной по алгоритму DSA, являются P; G; q; КОА. Числовые значения этих параметров передаются открыто всем пользователям корпоративной информационной системы для реализации функции проверки ЭЦП с целью установления подлинности принятого электронного сообщения «М», т.е. выполнения процесса аутентификации сообщения «М» абонентом-получателем (абонентом «В»).
7. Абонент-отправитель вычисляет значение функции хеширования передаваемого сообщения «М» - 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}.
8. Для составления криптограммы Ch(M) функции хеширования сообщения «М» абонент-отправитель задает случайным образом целое число «к» при условии 1 < к < q. В рассматриваемом примере 1 < к < 443 принимается значение к = 347.
9. На следующем шаге алгоритмизации производится вычисление параметра «r» в соответствии со следующей зависимостью:
r = (Gк mod P) mod q
Для принятых значений параметров аутентификации G = 324; к = 347; P = 887; q = 443 значение параметра «r» определяется как:
r = (Gк mod P) mod q = (324347 mod 887) mod 443 = 436 mod 443 → 436.
Параметр «r» является постоянным для всего множества числовых значений элементов функции хеширования сообщения «М».
10. После вычисления значения параметра «r» для подписываемого сообщения «М» абонент-отправитель производит шифрование каждого элемента функции хеширования h(M)В с помощью закрытого (секретного) ключа абонента-отправителя КЗА в соответствии со следующей зависимостью:
Si = (( mi + r * КЗА) / к ) mod q
При заданных параметрах r; КЗА; к; q значения элементов криптограммы функции хеширования сообщения «М» Si определяются как:
Si
=
mod
443
Пример вычисления значения элемента криптограммы Si для значения элемента m1 – первого элемента функции хеширования отображается следующим образом m1 = 52 (в этом случае для слова «Криптон» первый элемент функции хеширования). Следовательно:
S1
=
mod
443 = (
)
mod
443 = 136084 * 347-1
mod443
=
= 136084 * 347441 mod 443 = 136084 * 383 mod 443 = 52120172 mod 443 =
= 336 mod 443 → 336.
Остальные 31 элемент криптограммы функции хеширования определяются аналогичным образом, в результате формируется множество элементов криптограммы функции хеширования:
Si = {S1 S2 S3 … S32} = {336 133 336 133 13 50 253 253 170 96 133 133 13 216 253 50 336 96 96 336 13 13 13 13 373 336 133 133 216 13 253 50}.
После вычисления отдельных закриптографированных значений элементов функции хеширования и значения параметра «r» абонент-получатель формирует криптограмму Ch(M), которая представляет собой электронную цифровую подпись передаваемого сообщения «М».
ЭЦП → S → Ch(M) → {r; Si} → {436 336 133 336 133 13 50 253 253 170 96 133 133 13 216 253 50 336 96 96 336 13 13 13 13 373 336 133 133 216 13 253 50}.
Таким образом, электронная цифровая подпись, передаваемого сообщения «М» представляет собой числовое значение параметра «r» и криптографические значения элементов функции хеширования сообщения «М». ЭЦП совместно с сообщением «М» по каналам телекоммуникаций передается абоненту-получателю.
Действия абонента-получателя (абонента «В») по аутентификации принятого электронного сообщения «М» (проверка ЭЦП).
11. Получив ЭЦП переданного сообщения «М» и само сообщение, абонент-получатель (абонент «В») на первом этапе аутентификации проверяет выполнение следующих условий 0 < r < q и 0 < Si < q и в случае не соблюдения указанных неравенств отвергает полученное сообщение как модифицированное. Для рассматриваемого примера 0 < 436 < 443 и 0 < Si < 443 первое условие корректно.
12.
После проверки первого условия
абонент-получатель вычисляет параметр
Wi
=
mod
q
(для рассматриваемого примера Wi
=
mod
443). Множество элементов Wi
определяется через параметры элементов
криптограммы функции хеширования. Так
например, для вычисления значения W1
выполняется следующая операция:
W1=
mod q =
mod 443 = 336-1
mod 443 = 336441
mod 443 = 207 mod 443 → 207. Последующие
31 элемент определяются аналогичным
образом. В результате выполненных
вычислений формируется множество
элементов Wi.
Wi → {207 10 207 10 409 381 436 436 86 60 10 10 409 322 436 381 207 60 60 207 409 409 409 409 424 207 10 10 322 409 436 381}.
13. После вычисления значений Wi по принятым значениям элементов криптограммы функции хеширования абонент-получатель вычисляет значения элементов функции хеширования принятого сообщения «М».
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}.
14. На следующем этапе алгоритмизации производится вычисление следующих параметров: U1i = (mi * Wi) mod q и U2i = (r * Wi) mod q. Для рассматриваемого примера:
U1i → {132 37 132 37 72 54 121 121 339 259 37 37 72 111 121 54 132 259 259 132 72 72 72 72 50 132 37 37 111 72 121 54};
U2i → {323 373 323 373 238 434 49 49 284 23 373 373 238 404 49 434 323 23 23 323 238 238 238 238 133 323 373 373 404 238 49 434}.
15.
После вычисления параметров U1i
и U2i
абонент-получатель вычисляет множество
значений Vi
= ((
*
) mod
P)
mod
q.
Для приведенного примера Vi
= ((
*
) mod
887) mod
443 .
Vi → {436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436 436}.
16. Сравниваются элементы вычисленного множества Vi и значение «r», принятое в составе ЭЦП, если все значения элементов Vi совпадают со значением параметра «r», принятого в составе ЭЦП, то сообщение «М» признается достоверным, в противном случае сообщение отвергается как модифицированное.