
- •Методы защиты информации в компьютерных технологиях Москва 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-кодирования в коды Боуза-Чодхури-Хоквингема (бчх).
3.2. Алгоритм криптографической системы на основе вычисления дискретных логарифмов в конечном поле – алгоритм Эль Гамаля.
Указанная схема алгоритма криптографических преобразований была предложена Тахиром Эль Гамалем в 1985 году (США), она обусловлена сложностью вычисления дискретных логарифмов в конечном поле. Последовательность действий аналогична алгоритму факторизации больших чисел RSA.
Действия абонента В – абонента получателя закриптгорафированного (зашифрованного) сообщения.
1. На первом шаге алгоритма абонент В формирует (генерирует) пару ключей шифрования-дешифрования передаваемых сообщений: КОВ - открытый ключ, предназначенный для шифрования открытых сообщений; КЗВ – закрытый (секретный) ключ, предназначенный для дешифрования принимаемых криптограмм.
Изначально, со стороны абонента В (абонента – получателя зашифрованных сообщений) случайным образом задается большое простое число Р (модуль производимых вычислений). На практике это число составляет более 100 десятичных знаков, для упрощения процесса изучения алгоритма Эль Гамаля принимается число Р = 977, затем выбирается целое число G < Р, примем G = 378.
2. На втором шаге алгоритмизации случайным образом задается целое число КЗВ –закрытый (секретный) ключ для дешифрования принимаемых закриптографированных сообщений, для примера принимается КЗВ = 529; условием ограничения является КЗВ < Р.
3. Вычисляется значение открытого ключа абонента В, предназначенного для шифрования открытых сообщений для абонента В:
КОВ
=
mod
P = 378529
mod 977 = 402 mod 977 → 402.
4. Числовые значения P, G, КОВ являются открытыми параметрами криптографической системы и передаются по незащищенному каналу всем абонентам связи, в частности и абоненту А для обеспечения возможности абоненту-отправителю использовать эти параметры для шифрования открытых сообщений для абонента В. Параметры P и G многопользовательской корпоративной системы защиты и аутентификации электронных сообщений распространяются между всеми абонентами передачи-приема зашифрованных сообщений и являются постоянными для определенного временного интервала, задаваемого администратором безопасности.
Параметры КОВ –открытый ключ и КЗВ-закрытый (секретный) ключ формируются индивидуально на каждом рабочем месте абонента защищенной связи. КЗВ-закрытый (секретный) ключ хранится у каждого абонента в защищенном варианте (на съемных носителях) и никогда никому не передается. Открытыми ключами КО все абоненты телекоммуникационной системы обмениваются между собой по открытым каналам.
В рассматриваемом примере параметры P, G, KOB от абонента В передаются открыто абоненту А.
Действия абонента А для формирования криптограмм открытых сообщений для абонента В.
1. Абонент А свое открытое сообщение, предназначенное для шифрования и передачи сформированной криптограммы абоненту-получателю В, отображает в виде целых чисел в соответствии с принятой таблицей (например, таблица Windows-кодировки). Рассмотрим пример составления криптограммы слова «Криптон». К → 171; р → 209; и → 201; п → 208; т→211; о → 207; н → 206.
2. Для того, чтобы зашифровать сообщение М→ «Криптон» абонент А выбирает случайным образом целое число «К» с учетом следующих условий 1 < К < Р-1; НОД (К; (Р-1)) = 1. Условие, что наибольший общий делитель (НОД) чисел К и (Р-1) равен единице, означает их взаимную простоту. Т.е. число К должно быть взаимопростым с числом (Р-1) = 976 и лежать в пределах от 1 до 976. Например принимается К=473. Необходимо отметить, что для каждого сеанса обмена зашифрованными сообщениями число К индивидуально.
3. Абонент А производит вычисление чисел для формирования криптограммы для абонента В. Изначально вычисляется общее для данной криптограммы число a = GK mod P. Для рассматриваемого примера К=473; G=378; Р=977 следовательно число a = 378473 mod 977 = 950 mod 977 → U. Затем вычисляются криптографические значения каждого символа открытого текста в соответствии со следующей зависимостью:
Ci = (KOB)K * Mi mod P.
Для рассматриваемого примера: Ci = 402473 * Mi mod 977.
С1 = 402473 * M1 mod P = 402473 * 171 mod 977 = 497 mod 977 → 497 → P;
С2 = 402473 * M2 mod P = 402473 * 209 mod 977 = 716 mod 977 → 716 → K;
С3 = 402473 * M3 mod P = 402473 * 201 mod 977 = 927 mod 977 → 927 → >;
С4 = 402473 * M4 mod P = 402473 * 208 mod 977 = 376 mod 977 → 376 → . ;
С5 = 402473 * M5 mod P = 402473 * 211 mod 977 = 419 mod 977 → 419 → B ;
С6 = 402473 * M6 mod P = 402473 * 207 mod 977 = 36 mod 977 → 36 → C;
С7 = 402473 * M7 mod P = 402473 * 206 mod 977 = 673 mod 977 → 673 → L;
Два числа (a; Ci) для каждого семантического символа открытого сообщения являются его криптограммой. Общий вид криптограммы всего открытого сообщения «Криптон» имеет следующее отображение:
С = {950 497; 950 716; 950 927; 950 376; 950 419; 950 36; 950 673} →
→ {U P; U K; U >; U .; U b; U C; U L}.
Как видно из отображения криптограммы «С» в случае ее формирования по алгоритму Эль Гамаля (алгоритм дискретного логарифмирования в конечном поле) длина шифртекста становится вдвое больше длины исходного открытого сообщения «М». Таким образом, со стороны абонента А формируется криптограмма С для абонента В с помощью открытого ключа абонента В – КОВ. Эта криптограмма по каналам теледоступа передается от абонента А к абоненту В. Получив криптограмму С, абонент В производит ее дешифрование с помощью своего секретного ключа КЗВ, который хранится только у абонента В под секретом.
Действие абонента В по приему и расшифровки криптограммы С, полученной от абонента А.
4. Абонент В по сетевым каналам телекоммуникаций принимает криптограмму С от абонента-отправителя А, которая зашифрована открытым ключом абонента В – КОВ. В этом случае абонент В является санкционированным абонентом, имеющим специальный закрытый (секретный) ключ – КЗВ непосредственно функционально связанный с открытым ключом КОВ, с помощью которого и была сформирована криптограмма С.
С помощью своего закрытого (секретного) ключа КЗВ абонент В производит дешифрование криптограммы, полученной от абонента А, используя следующие функциональные преобразования:
Mi
=
mod
P
Каждый элемент криптограммы дешифруется самостоятельно, в рассматриваемом примере а = 950; КЗВ = 529; Р = 977.
Mi
=
mod
977
Выполнив операцию возведения числа в степень по модулю знаменателя представленной зависимости, получают:
950529 mod 977 = 340 mod 977 → 340.
Методика такого вычисления приведена в разделе 2.3, а сам алгоритм представлен на рис. 3.
Рис.3. Алгоритм возведения числа а = 950 в степень 529 по модулю 977.
После выполнения операции возведения числа «а = 950» в степень 529 по модулю 977 получают соответствие функционального преобразования криптограммы в открытый текст сообщения, принятого от абонента А.
Mi
=
mod
977
Для вычисления значений открытого текста необходимо воспользоваться методом вычисления обратных величин по модулю. Для чего значение Mi представляется как: Mi = Ci * 340-1 mod 977.
Изначально вычисляется значение инверсии числа 340 по модулю 977, т.к. число 977 является простым числом, то это преобразование может быть отображено как: 340-1 mod 977 = 340φ(P)-1 mod P, т.к. Р – простое число, то φ(Р) = Р-1 = 977 – 1 = 976.
Следовательно, 340-1 mod 977 = 340975 mod 977 = 250 mod 977
Для вычисления значений Mi получаем следующую зависимость:
Mi = Ci * 250 mod 977
Откуда получаем:
M1 = C1 * 250 mod 977 = 497 * 250 mod 977 = 124250 mod977 = 171 mod977
→ К;
M2 = C2 * 250 mod 977 = 716 * 250 mod 977 = 179000 mod977 = 209 mod977
→ р;
M3 = C3 * 250 mod 977 = 927 * 250 mod 977 = 231750 mod977 = 201 mod977
→ и;
M4 = C4 * 250 mod 977 = 376 * 250 mod 977 = 94000 mod977 = 208 mod977
→ п;
M5 = C5 * 250 mod 977 = 419 * 250 mod 977 = 104750 mod977 = 211 mod977
→ т;
M6 = C6 * 250 mod 977 = 36 * 250 mod 977 = 9000 mod977 = 207 mod977
→ о;
M7 = C7 * 250 mod 977 = 673 * 250 mod 977 = 168250 mod977 = 206 mod977
→ н.
Таким образом, при дешифровании с помощью закрытого (секретного) ключа абонента В произведено восстановление принятого закриптографированного сообщения.