Криптографические протоколыРефераты >> Криптология >> Криптографические протоколы
индивидуальные ключи подписывания выбираются самими пользователями по случайному закону из большого множества всех возможных ключей,
при конкретном алгоритме цифровой подписи его стойкость может быть оценена без привлечения какой-либо "закрытой" информации на основе только известных математических результатов и разумных допущений о вычислительных мощностях потенциального "взломщика", посколку она базируется на общедоступных теоретических результатах по оценке сложности широко известных сложных вычислительных задач.
2. АЛГОРИТМЫ.
Проведем теперь сопоставление некоторых конкретных алгоритмов цифровой подписи с целью выявления их преимуществ и недостатков в различных ситуациях.
Для удобства оценки основных свойств того или иного алгоритма мы будем сравнивать его основные характеристики:
длину ключей,
длину цифровой подписи,
сложность (время) вычисления и
сложность (время) проверки подлинности цифровой подписи
при условии, что уровень стойкости подписи по отношению к любым методам фальсификации не ниже, чем 10**21 (или 30 лет непрерывной работы сети из 1000 суперкомпьютеров).
В качестве "базовой" длины ключей и длины самой цифровой подписи мы будем рассматривать длину в 64 байта.
RSA. Первым по времени изобретения конкретным алгоритмом цифровой подписи был разработанный в 1977 году в Массачусетском технологическом институте алгоритм RSA.
Алгоритм RSA основывается на том математическом факте, что задача дискретного логарифмирования при выборе целого параметра n в виде произведения двух различных простых чисел примерно равных по порядку величины, т.е.
n = p*q
становится не менее сложной, чем разложение n на эти простые множители, а последняя задача давно (еще со времен Архимеда и Евклида) известна в математике как сложная.
По современным оценкам сложность задачи разложения на простые множители при целых числах n из 64 байт составляет порядка 10**17 - 10**18 операций, т. е. находится где-то на грани досягаемости для серьезного "взломщика". Поэтому обычно в системах цифровой подписи на основе алгоритма RSA применяют более длинные целые числа n (обычно от 75 до 128 байт).
Это соответственно приводит к увеличению длины самой цифровой подписи относительно 64-байтного варианта примерно на 20% -100% (в данном случае ее длина совпадает с длиной записи числа n), а также от 70% до 800% увеличивает время вычислений при подписывании и проверке.
Кроме того, при генерации и вычислении ключей в системе RSA необходимо проверять большое количество довольно сложных дополнительных условий на простые числа p и q (что сделать достаточно трудно и чего обычно не делают, пренебрегая вероятностью неблагоприятного исхода - возможной подделки цифровых подписей)., а невыполнение любого из них может сделать возможным фальсификацию подписи со стороны того, кто обнаружит невыполнение хотя бы одного из этих условий (при подписывании важных документов допускать, даже теоретически, такую возможность нежелательно).
В дополнение ко всем этим алгоритмическим слабостям метода RSA следует также иметь в виду, что он защищен патентом США и поэтому любое его использование на территории США или западноевропейских стран требует приобретения соответствующей лицензии на использование, стоимость которой на 100 пользователей составляет $5000.
EGSA. Существенным шагом вперед в разработке современных алгоритмов цифровой подписи был новый алгоритм Т. ЭльГамаля, предложенный им в 1984 году. В этом алгоритме целое число n полагается равным специально выбранному большому простому числу p, по модулю которого и производятся все вычисления. Такой выбор позволяет повысить стойкость подписи при ключах из 64 байт примерно в 1000 раз, т.е. при такой длине ключей обеспечивается необходимый нам уровень стойкости порядка 10**21. Правда, при этом длина самой цифровой подписи увеличивается в два раза и составляет 128 байт.
Главная "заслуга" алгоритма ЭльГамаля состояла в том, что в дальнейшем он послужил основой для принятия нескольких стандартов цифровой подписи, в том числе национального стандарта США DSS, введенного в действие 1 декабря 1994 года и государственного стандарта РФ ГОСТ Р 34.10, введенного с 1 января 1995 года.
DSA. Национальным институтом стандартов и технологий СЩА в 1991 году на основе алгоритма ЭльГамаля был разработан и представлен на рассмотрение Конгресса США новый алгоритм цифровой подписи, получивший название DSA (сокращение от Digital Signature Algorith). Алгоритм DSA, ставший в дальнейшем основой национального стандарта США на цифровую подпись имеет по сравнению с алгоритмом RSA целый ряд преимуществ:
во-первых, при заданном уровне стойкости цифровой подписи целые числа, с которыми приходится проводить вычисления, имеют запись как минимум на 20% короче, что соответственно уменьшает сложность вычислений не менее, чем на 70% и позволяет заметно сократить объем используемой памяти;
во-вторых, при выборе параметров достаточно проверить всего три достаточно легко проверяемых условия;
в-третьих, процедура подписывания по этому методу не позволяет вычислять (как это возможно в RSA) цифровые подписи под новыми сообщениями без знания секретного ключа.
Эти преимущества, а также соображения, связанные с возможностью его реализовывать любым разработчиком свободно без коммерческих лицензионных соглашений с держателями патента, компанией RSA Data Security, и возможностью свободного безлицензионного экспорта такой технологии из США послужили главным мотивом для принятия в 1994 году национального стандарта цифровой подписи (DSS) на его основе.
Такое решение отнюдь не было очевидным, поскольку RSA, как наиболее известный алгоритм цифровой подписи и шифрования с открытым ключом, был гораздо шире распространен, практически опробован во многих странах и признан как стандарт de facto большинством разработчиков операционных систем, сетевых технологий и прикладного программного обеспечения. Популярность его объясняется, прежде всего, 8-летним опережением по времени появления, значительно более широкой известностью как самого алгоритма, так и его авторов в научных кругах, а также успешным бизнесом держателя патента - компании RSA Data Security, Inc. (сам автор алгоритма ЭльГамаль был в 1994-1995 гг. ее сотрудником).
Технические преимущества алгоритма, о которых мы говорили выше видны были лишь специалистам в области криптографии. Однако, в данной ситуации именно они оказались определяющими, и мир получил далеко не худший по тем временам стандарт. В настоящее время алгоритм DSA уже не является лучшим из возможных алгоритмов цифровой подписи по техническим параметрам, но вероятность его принятия в качестве международного стандарта остается достаточно большой.
По сравнению с оригинальным алгоритмом ЭльГамаля метод DSA имеет одно важное преимущество, - при заданном в стандарте уровне стойкости, числа, участвующие в вычислении подписи, имеют длину по 20 байт каждое, сокращая общую длину подписи до 40 байт.