Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
11 Алгоритм RSA.doc
Скачиваний:
28
Добавлен:
27.10.2018
Размер:
996.35 Кб
Скачать

10. Основные принципы несимметричных алгоритмов. Алгоритм упаковки рюкзака

Принцип несимметричных алгоритмов шифрования применяется для создания электронной цифровой подписи (ЭЦП). Электронно-цифровая подпись позволяет: - подтвердить авторство электронного документа; - подтвердить подлинность и время подписи электронного документа.

В Интернете используют несимметричные криптографические системы, основанные на использовании не одного, а двух ключей. Происходит это следующим образом. Компания для работы с клиентами создает два ключа: один - открытый (public - публичный) ключ, а другой - закрытый (private - личный) ключ. На самом деле это как бы две "половинки" одного целого ключа, связанные друг с другом.

Ключи устроены так, что сообщение, зашифрованное одной половинкой, можно расшифровать только другой половинкой (не той, которой оно было закодировано). Создав пару ключей, торговая компания широко распространяет публичный ключ (открытую половинку) и надежно сохраняет закрытый ключ (свою половинку).

Как публичный, так и закрытый ключ представляют собой некую кодовую последовательность. Публичный ключ компании может быть опубликован на ее сервере, откуда каждый желающий может его получить. Если клиент хочет сделать фирме заказ, он возьмет ее публичный ключ и с его помощью закодирует свое сообщение о заказе и данные о своей кредитной карте. После кодирования это сообщение может прочесть только владелец закрытого ключа. Никто из участников цепочки, по которой пересылается информация, не в состоянии это сделать. Даже сам отправитель не может прочитать собственное сообщение, хотя ему хорошо известно содержание. Лишь получатель сможет прочесть сообщение, поскольку только у него есть закрытый ключ, дополняющий использованный публичный ключ.

Основные понятия:

{KO,KR} – пара ключей (открытый и секретный);

M – исходное (нешифрованное) сообщение (число);

ЕKO(.) – алгоритм шифрования;

DKR(.) – алгоритм дешифрования;

А --------->???>----------> B

KOB {KOB, KRB}

M

C=EKOB(M)-> C >-->P= DKRB(C)

C = ЕKO(M) – зашифрованное сообщение (по открытому каналу).

Алгоритмы ЕKO(.), DKR(.) и открытый ключ KO – известны (!).

Секретом является только закрытый ключ KR !

Дополнительным (к тем, что типичны для симметричных алг.) требованием является трудность определения KR по известному KO.

Характеристика несимметричных алгоритмов (НА )по сравнению с симметричными (СА):

  • Относительно бо’льшая вычислительная трудоемкость НА

  • Бо’льшая длина ключа НА (~ в 10 раз)

Практическое применение:

    1. цифровая подпись (в дальнейшем).

    2. передача секретного ключа СА, вместо шифрования всего текста (использование в комбинации с СА, например, в системе PGP)

Алгоритм Рюкзака

 Первым алгоритмом для обобщенного шифрования с открытым ключом стал алгоритм рюкзака, разработанный Ральфом Мерклом и Мартином Хеллманом.

Проблема рюкзака несложна. Дана куча предметов различной массы, можно ли положить некоторые из этих предметов в рюкзак так, чтобы масса рюкзака стала равна определенному значению? Более формально, дан набор значений M1, М2,. . ., Мn и сумма S, вычислить значения bi, такие что

S = b1М1 + b2М2 +...+ bпМп

bi может быть либо нулем, либо единицей. Единица показывает, что предмет кладут в рюкзак, а ноль - что не кладут.

  Например, массы предметов могут иметь значения 1, 5, 6, 11, 14 и 20. Вы можете упаковать рюкзак так, чтобы его масса стала равна 22, использовав массы 5, 6 и 11.

Невозможно упаковать рюкзак так, чтобы его масса была равна 24. В общем случае время, необходимое для решения этой проблемы, с ростом количества предметов в куче растет экспоненциально.

  В основе алгоритма рюкзака Меркла-Хеллмана лежит идея шифровать сообщение как решение набора проблем рюкзака. Предметы из кучи выбираются с помощью блока открытого текста, по длине равного количеству предметов в куче (биты открытого текста соответствуют значениям b), а шифротекст является полученной суммой. Пример шифротекста, зашифрованного с помощью проблемы рюкзака.

Шифрование с рюкзаками

Открытый текст   

111001

010110

000000

011000

Рюкзак

1 5 6 11 14 20        

1 5 6 11 14 20        

1 5 6 11 14 20        

1 5 6 11 14 20

Шифротекст

1+5+6+20=32        

5+11+14=30         

0=0

5+6=11

 Фокус в том, что на самом деле существуют две различные проблемы рюкзака, одна решается за линейное время, а другая, как считается, - нет. Легкую проблему можно превратить в трудную. Открытый ключ представляет собой трудную проблему, которую легко использовать для шифрования, но невозможно для дешифрирования сообщений. Закрытый ключ является легкой проблемой, давая простой способ дешифрировать сообщения. Тому, кто не знает закрытый ключ, придется попытаться решить трудную проблему рюкзака .