Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (2).doc
Скачиваний:
277
Добавлен:
28.06.2014
Размер:
2.41 Mб
Скачать
  1. Криптографическая система rsa.

RSA (Rivest, Shamir, Adleman).

Выбор ключей шифрования:

  1. выбираются два больших простых числа p и q;

  2. вычисляется значение модуля n=p•q;

  3. выбирается достаточно большое целое число y (или d), которое является взаимно простым с φ(n) и вместе с n образует закрытый ключ шифрования (y, n) (φ(n) – функция Эйлера);

  4. вычисляется целое число x (или e), которое является мультипликативно обратным числу y по модулю φ(n) и вместе с n образует открытый ключ шифрования (x, n).

Генерация ключей в криптосистеме RSA

Обычная процедура выбора большого простого числа:

  1. генерация случайного целого числа требуемой длины;

  2. установка в 1 старшего и младшего битов;

  3. проверка делимости на малые простые числа (≤256 или ≤2000, тест Б.Шнайера);

  4. вероятностный тест на простоту (Миллера-Рабина или другой), выполняемый несколько раз (например, 4).

Шифрование по алгоритму RSA выполняется следующим образом:

C=Px {mod n}, где

  • P – открытый текст;

  • C – шифротекст.

Для расшифрования шифротекста производится следующее действие:

P=Cy {mod n}. Если P и n являются взаимно простыми, то Cy {mod n}=(Px)y {mod n}=Pxy {mod n}=P1+φ(n)•k {mod n}=P•Pφ(n)•k {mod n} = P•1k {mod n}=P (из теоремы Эйлера).

  • Если криптоаналитику удастся разложить n на множители p и q, то он сможет вычислить значение φ(n)=(p-1)(q-1), затем определить значение y и раскрыть тем самым параметры шифрования. На современном уровне развития компьютерных технологий значение n должно содержать не менее 1024 бит.

Атака на RSA

Пусть S – случайное значение, F – фиктивный документ. Нарушитель вычисляет EPK(S)*F и дает на подпись владельцу (PK, SK). Тот вычисляет ESK(EPK(S)*F)=ESK(EPK(S))* ESK(F), а нарушитель делит результат на S и получает ESK(F). Защита: предварительное хеширование подписываемого документа, но возможен «взлом» функции хеширования.

Криптосистема RSA. Пример

Зашифровать и расшифровать P=33. Выбор ключей: p=5, q=11, n=55, φ(n)=40, y=7 (взаимно простое с φ(n)), x=23 (x·y=1 {mod φ(n)}.

Шифрование. P<n. C=3323{mod 55}=323{mod 55}·1123{mod 55}. C1=323{mod 55} =316·34· 33{mod 55} =264·26·27{mod 55} =24·(132)2·2·13·3·9{mod 55} =16·16·2·7·3 {mod 55} =2·41 {mod 55} =27. C2=1123 {mod 55} =1116·114·112·11{mod 55} =118·112·11·11{mod 55} =11. C=27·11{mod 55} =3·9·11{mod 55} =3·44{mod 55} =22.

Расшифрование. P=227{mod 55} =27·117 {mod 55} =18·11 {mod 55} =2·9·11 {mod 55} =2·44 {mod 55} =33.

  1. Криптографические системы Диффи-Хеллмана, Эль-Гамаля и эллиптических кривых.

Протокол Диффи-Хеллмана

Предназначен для генерации сеансового ключа симметричного шифрования, который затем будет использован субъектами A и B для защищенного обмена сообщениями по открытой сети:

  1. A: выбирает xa и вычисляет ya=axa {mod p} (p – простое число или степень простого числа, 1<a<p-1).

  2. B: выбирает xb и вычисляет yb=axb {mod p}.

  3. A->B: ya.

  4. B->A: yb.

  1. A: вычисляет ka=(yb)xa {mod p}.

  2. B: вычисляет kb=(ya)xb {mod p}.

  3. Конец (ka=(yb)xa {mod p}=(axb)xa {mod p}=axbxa {mod p}=axaxb {mod p}=kb и созданный ключ может теперь использоваться для защищенного обмена сообщениями между A и B).

  • Открытый ключ: a, p, ya (yb).

  • Закрытый ключ: xa (xb).

  • Основан на вычислительной сложности задачи дискретного логарифмирования: вычисление y=ax {mod p} (p – простое число или степень простого числа, 1<x<p-1, 1<a<p-1) выполняется просто, но вычисление x=logay {mod p} выполняется весьма сложно.

  • Значения a и p в системе Диффи-Хеллмана не являются секретными, поскольку, даже зная их, нарушитель не сможет решить задачу дискретного логарифмирования и найти значения xa и xb, чтобы вычислить сгенерированный ключ симметричного шифрования (однако необходимо получение A и B этих параметров из надежного источника).

Криптосистема Эль-Гамаля

  • Является модификацией криптосистемы Диффи-Хеллмана. Значение a вместе со значениями p и y составляет открытый ключ, а закрытым ключом является значение x (y=ax {mod p}). Шифрование открытого текста P в криптосистеме Эль-Гамаля:

  1. Выбор случайного целого числа k (1<k<p-1 и НОД(k, p-1)=1).

  2. C1=ak {mod p}.

  3. C2=P•yk {mod p}.

  4. Конец (шифротекстом являются значения C1 и C2).

  • Расшифрование производится путем составления сравнения P•C1x=C2 {mod p} и решения его относительно P. Действительно P• C1x {mod p}=P•(ak)x {mod p}=P•(ax)k {mod p}=P•yk {mod p}=C2 {mod p}.

  • Если P≥p, то открытый текст должен быть разбит на блоки, длина которых равна длине числа p.

  • В пункте 3 алгоритма шифрования вместо операции умножения может использоваться операция сложения по модулю 2 (C2=P Å yk {mod p}). Тогда при расшифровании восстановление открытого текста выполняется так:

P=(C1x {mod p}) Å C2 (так как C1x {mod p}=yk {mod p}).

  • Недостатком этого варианта является то, что открытый текст должен разбиваться на блоки заранее неизвестной длины yk {mod p}.

Криптосистема на основе эллиптических кривых

  • Используются алгебраические структуры, определенные на множестве точек на эллиптической кривой:

{(x, y) | y2=x3+ax+b} U {(¥,¥)}.

  • Для точек на эллиптической кривой вводится операция сложения (добавления новой точки по двум известным), которая допускает простую реализацию и играет ту же роль, что и операция дискретного возведения в степень в криптосистемах Диффи-Хеллмана и Эль-Гамаля.

Криптосистема на основе эллиптических кривых

  • Определив, таким образом, операцию сложения, можно ввести и операцию умножения точки эллиптической кривой G на целое число x:

G+G+…+G(x раз)=x•G.

Если g•G=0, то g называется порядком точки G.

  • В реальных криптосистемах вычисление y2=x3+ax+b производится по простому модулю p. Если Y и G – две точки на эллиптической кривой, связанные соотношением Y=x•G, то значение x будет являться закрытым ключом, а значение Y вместе со значениями G, a, b и p составит открытый ключ.

Шифрование в криптосистеме на основе эллиптических кривых

  1. Выбор случайного k (1<k<g, g – порядок G), вычисление точки R=k•G.

  2. Вычисление точки S=k•Y с координатами (xS, yS).

  3. Вычисление С=(xS+P) {mod g}.

R и C – шифротекст для открытого текста P.

Расшифрование в криптосистеме на основе эллиптических кривых

  1. Вычисление точки S=x•R с координатами (xS, yS).

  2. Вычисление P=(C-xS) {mod g}, т.к. x•R=x•k•G=k•Y=S.

Криптосистема на основе эллиптических кривых

  • Криптостойкость системы на основе эллиптических кривых определяется вычислительной сложностью нахождения целого числа x по известным точкам эллиптической кривой y и G (поиск x и k, для которых x•k•G=k•Y=x•R). Ее преимуществом является возможность использования более короткого ключа при той же криптостойкости, что и в других асимметричных криптосистемах.

Угрозы безопасности электронных документов

  • подготовка документа от имени другого субъекта (маскарад);

  • отказ автора документа от факта его подготовки (ренегатство);

  • изменение получателем документа его содержания (подмена);

  • изменение содержания документа третьим лицом (активный перехват);

  • повторная передача по компьютерной сети ранее переданного документа (повтор).