КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Криптография с открытым ключом
2.11.1. Вычислительно сложные алгоритмы и задачи Обычно "легко" означает, что проблема может быть решена за полиномиальное время от длины входа. Таким образом, если длина входа имеет n битов, то время вычисления функции пропорционально n**a, где а - фиксированная константа. В этом случае говорят, что алгоритм принадлежит классу полиномиальных алгоритмов Р. Термин "трудно" означает более сложное понятие. В общем случае будем считать, что проблему решить невозможно, если усилия для ее решения больше полиномиального времени от величины входа. Например, если длина входа n битов, и время вычисления функции пропорционально a**n, где а - фиксированная константа, то алгоритм принадлежит к классу экспоненциально сложных алгоритмов и это считается вычислительно невозможной задачей. К сожалению, тяжело определить, проявляет ли конкретный алгоритм такую сложность. Более того, традиционные представления о вычислительной сложности фокусируются на худшем случае или на среднем случае сложности алгоритма. Это неприемлемо для криптографии, где требуется невозможность вычисления функции для всех или почти всех значений входов. 2.11.3. Сведения из теории чисел
Тогда w Zp z: w · z 1 mod p
Если p и q - простые, то Φ(p · q) = (p-1) · (q-1).
an-1 1 mod n, если n - простое.
aΦ(n) 1 mod n для всех взаимнопростых a и n, т.е. НОД(а,n) = 1. 2.11.2. Модель криптосистемы с открытым ключом. Необратимые преобразования с лазейкой. Примеры преобразований, используемых в криптографии. Для обеспечения безопасности в системах шифрования секретным должен быть только ключ расшифрования. В симметричных криптосистемах это автоматически предполагает и секретность ключа зашифрования. Однако можно допустить и существование криптосистем другого типа. Общие требования к алгоритмам шифрования с открытым ключом (открытое шифрование). Закрытый (секретный) ключ будем обозначать KR, открытый ключ - KU. Будем предполагать, что все участники имеют доступ к открытым ключам друг друга, а закрытые ключи создаются локально каждым участником и, следовательно, распределяться не должны. Модель шифрования с открытым ключом приведена на рис.7.1. Рис.7.1. Модель шифрсистемы с открытым ключом Диффи и Хеллман сформулировали общие требования, которым должен удовлетворять алгоритм шифрования с открытым ключом:
Рассмотрение преобразований, которые бы удовлетворяли этим требованиям, приводит к понятию односторонней функции с лазейкой (люком), которое является центральным для криптографии с открытым ключом. Односторонняя функция – это эффективно вычислимая функция, для задачи инвертирования которой не существует эффективных алгоритмов, то есть для любого аргумента вычислить саму функцию легко, а вычислить обратную функцию трудно. Y = f(X) – легко X = f-1(Y) - трудно Примеры Односторонней функции с лазейкой, которую, подобно односторонней функции, легко вычислить в одном направлении и трудно вычислить в обратном направлении до тех пор, пока недоступна некоторая дополнительная информация. При наличии этой дополнительной информации инверсию можно вычислить за полиномиальное время. Таким образом, односторонняя функция с лазейкой принадлежит параметрическому семейству односторонних функций fk таких, что Y = fk(X) – легко для любого X, даже если k неизвестно X = fk-1(Y) – легко для любого Y, если k известно Х = fk-1(Y) - трудно, если Y известно, но k неизвестно Тогда проблема открытого шифрования решается следующим образом. Открытым ключом зашифрования KU служит сама fk(X) с неизвестным k. Секретным ключом расшифрования KR служит секретный параметр k. Зашифрование С = fk(М) Расшифрование М = fk-1(М) Безопасность системы обеспечивается тем, что никто, кроме законного получателя, не знает секретного параметра k. Криптостойкость системы обеспечивается вычислительной сложность определения М при известных С и fk(М), но неизвестном k (или установления k). Таким образом разработка конкретного алгоритма с открытым ключом зависит от открытия соответствующей односторонней функции с лазейкой. Два главных фактора, влияющих на стойкость асимметричных криптосистем: - выбор однонаправленной функции с лазейкой; - выбор алгебраической структуры, на базе которой реализуется криптосистема, так как сложность решения одной и той же теоретико-числовой задачи в разных алгебраических структурах может быть различна: от полиномиальной до экспоненциальной. В современной криптографии широко применяются три класса вычислительно сложных задач. Выбор алгебраических структур для всех перечисленных криптосистем различен. Первый из них – это задача факторизации целых чисел и различные её варианты. Второй – это задача дискретного логарифмирования и производные от неё задачи Схемой открытого шифрования (или, другими словами, асимметричной схемой шифрования) AE=(K,E,D) называется совокупность трёх алгоритмов: 1) алгоритма генерации ключей K=( KU, KR ); 2) алгоритма зашифрования E; 3) алгоритма расшифрования D. и состоит из следующих шагов:
1.1. Пользователь В создает пару ключей KUb и KRb, используемых для зашифрования и расшифрования передаваемых сообщений. 1.2. Пользователь В делает доступным некоторым надежным способом свой ключ шифрования, т.е. открытый ключ KUb. Составляющий пару закрытый ключ KRb держится в секрете.
Если А хочет послать сообщение В, он шифрует сообщение, используя открытый ключ получателя В KUb.
Когда В получает сообщение, он расшифровывает его, используя свой закрытый ключ KRb. Никто другой не сможет дешифровать сообщение, так как этот закрытый ключ знает только получатель. Если пользователь (конечная система) надежно хранит свой закрытый ключ, никто не сможет восстановить передаваемые сообщения.
Дата добавления: 2013-12-13; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |