Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
Изобретение относится к области криптографических устройств. Техническим результатом настоящего изобретения является повышение производительности алгоритмов электронной цифровой подписи (ЭЦП) без снижения ее уровня стойкости. Сущность изобретения заключается в том, что способ генерации и проверки ЭЦП включает следующую последовательность действий: генерируют секретный ключ в виде многоразрядного двоичного числа (МДЧ) х, по секретному ключу формируют открытый ключ Y в виде матрицы МДЧ размерности w×w, где 2≤w≤32, принимают электронный документ, представленный МДЧ Н, в зависимости от принятого электронного документа и от значения секретного ключа формируют электронную цифровую подпись Q в виде двух МДЧ, в зависимости от Q, Y и Н формируют первое А и второе В проверочные МДЧ, сравнивают МДЧ А и В. При совпадении их параметров делают вывод о подлинности электронной цифровой подписи. 5 з.п. ф-лы.
Реферат
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов аутентификации электронных сообщений, передаваемых по телекоммуникационным сетям и сетям ЭВМ, и может быть использовано в системах передачи электронных сообщений (документов), заверенных электронной цифровой подписью (ЭЦП), представленной в виде многоразрядного двоичного числа (МДЧ). Здесь и далее под МДЧ понимается электромагнитный сигнал в двоичной цифровой форме, параметрами которого являются: число битов и порядок следования их единичных и нулевых значений1). ((1)толкование используемых в описании терминов приведено в Приложении 1).
Известен способ формирования и проверки ЭЦП, предложенный в патенте США №4405829 от 20.09.1983 и детально описанный также и в книгах [1. М.А.Иванов. Криптография. М., КУДИЦ-ОБРАЗ, 2001; 2. А.Г.Ростовцев, Е.Б.Маховенко. Введение в криптографию с открытым ключом. С-Петербург, Мир и семья, 2001. - с.43]. Известный способ заключается в следующей последовательности действий:
формируют секретный ключ в виде трех простых МДЧ p, q и d, формируют открытый ключ (n, e) в виде пары МДЧ n и e, где n - число, представляющее собой произведение двух простых МДЧ p и q, и е - МДЧ, удовлетворяющее условию
ed=1 mod (p-1)(q-1), принимают электронный документ (ЭД), представленный МДЧ H;
в зависимости от значения H и значения секретного ключа формируют ЭЦП в виде МДЧ Q=S=Hdmod n;
формируют первое проверочное МДЧ A=H;
формируют второе проверочное МДЧ B, для чего МДЧ S возводят в целочисленную степень e по модулю n: B=Se mod n;
сравнивают сформированные проверочные МДЧ A и B;
при совпадении параметров сравниваемых МДЧ A и B делают вывод о подлинности ЭЦП.
Недостатком известного способа является относительно большой размер подписи и необходимость увеличения размера подписи при разработке новых более эффективных методов разложения числа n на множители или при росте производительности современных вычислительных устройств. Это объясняется тем, что значение элемента подписи S вычисляется путем выполнения арифметических операций по модулю n, а стойкость ЭЦП определяется сложностью разложения модуля n на множители p и q.
Известен также способ формирования и проверки подлинности ЭЦП Эль-Гамаля, описанный в книге [Молдовян А.А., Молдовян Н.А., Советов Б.Я. Криптография. - СПб: Лань, 2000. - с.156-159], который включает следующие действия:
формируют простое МДЧ p и двоичное число G, являющееся первообразным корнем по модулю p, генерируют секретный ключ в виде МДЧ x, в зависимости от секретного ключа формируют открытый ключ в виде МДЧ Y=Gxmod p, принимают ЭД, представленный в виде МДЧ H, в зависимости от H и секретного ключа формируют ЭЦП Q в виде двух МДЧ S и R, то есть Q=(S,R);
осуществляют процедуру проверки подлинности ЭЦП, включающую вычисление двух контрольных параметров с использованием исходных МДЧ p, G, Y, H и S путем возведения МДЧ G, Y, R в дискретную степень по модулю p и сравнение вычисленных контрольных параметров;
при совпадении значений контрольных параметров делают вывод о подлинности ЭЦП.
Недостатком данного способа также является относительно большой размер ЭЦП. Это объясняется тем, что значения элементов подписи S и R вычисляют путем выполнения арифметических операций по модулю p - 1 и по модулю p, соответственно.
Известен также способ формирования и проверки ЭЦП, предложенный в патенте США №4995089 от 19.02.1991. Известный способ заключается в следующей последовательности действий:
формируют простое МДЧ p, такое что p=Nq+1, где q - простое МДЧ;
формируют простое МДЧ a, такое что a≠1 и aq mod p=1;
методом генерации случайной равновероятной последовательности формируют секретный ключ в виде МДЧ x;
формируют открытый ключ в виде МДЧ γ по формуле y=ax mod p;
принимают ЭД, представленный МДЧ М;
формируют ЭЦП в виде пары МДЧ (е, s), для чего генерируют случайное МДЧ t, формируют МДЧ R по формуле R=at mod p, формируют МДЧ e=f(M||R), где знак || обозначает операцию присоединения двух МДЧ и f - некоторая специфицированная хэш-функция, значение которой имеет фиксированную длину (обычно 160 или 256 бит), независимо от размера аргумента, т.е. от размера МДЧ M||R, а затем формируют МДЧ s по формуле s=(t-ex) mod q;
формируют первое проверочное МДЧ A, для чего генерируют МДЧ R' по формуле
R'=asγe и формируют МДЧ A=e'=f(M||R');
формируют второе проверочное МДЧ B путем копирования МДЧ e: B=e;
сравнивают сформированные проверочные МДЧ A и B;
при совпадении параметров сравниваемых МДЧ A и B делают вывод о подлинности ЭЦП.
Недостатком способа по патенту США является относительно высокая вычислительная сложность процедуры формирования и проверки ЭЦП, что связано с тем, что для обеспечения минимально требуемого уровня стойкости требуется использовать простой модуль p разрядностью не менее 1024 бит.
Наиболее близким по своей технической сущности к заявленному является известный способ формирования и проверки подлинности ЭЦП, предлагаемый российским стандартом ГОСТ Р 34.10-2001 и описанный, например, в книге [Б.Я.Рябко, А.Н.Фионов. Криптографические методы защиты информации. М., Горячая линия - Телеком, 2005. - 229 с. (см. с.110-111)], согласно которому ЭЦП формируется в виде пары МДЧ r и s, для чего генерируют эллиптическую кривую (ЭК) в виде совокупности точек, причем каждая точка представляется двумя координатами в декартовой системе координат в виде двух МДЧ, называемых абсциссой (x) и ординатой (y), затем осуществляют операции генерации точек ЭК, сложения точек ЭК и умножения точки ЭК на число, а также арифметические операции над МДЧ, после чего в результате выполненных операций формируются МДЧ r и s. Указанные операции над точками выполняются как операции над МДЧ, являющимися координатами точек, по известным формулам [Б.Я.Рябко, А.Н.Фионов. Криптографические методы защиты информации. М., Горячая линия - Телеком, 2005. - 229 с. (см. с.110-111)]. Операция сложения двух точек А и В с координатами (xA, yA) и (xB, yB), соответственно, выполняется по формулам:
xc=k2-xA-xB mod p и yc=k(xA-xc)-yA mod p,
где , если точки А и В не равны, и , если точки А и В равны. Операция умножения точки А на натуральное число n определяется как многократное сложение токи А:
nА=А+А+…+А (n раз).
Результатом умножения любой точки ЭК на нуль определяется точка, называемая бесконечно удаленной точкой и обозначаемой буквой О. Две точки A=(x, у) и -A=(x, -y) называются противоположными. Умножение на целое отрицательное число -n определяется следующим образом: (-n)A=n(-А). По определению принимают, что сумма двух противоположных точек равна бесконечно удаленной точке О.
В прототипе, т.е. в способе формирования и проверки подлинности ЭЦП по стандарту ГОСТ Р 34.10-2001, генерируют ЭК, описываемую уравнением
y2=x3+ax+b mod p, поэтому генерация ЭК состоит в генерации чисел a, b и p, являющихся параметрами ЭК и однозначно задающих множество точек ЭК, абсцисса и ордината каждой из которых удовлетворяет указанному уравнению. Ближайший аналог (прототип) заключается в выполнении следующей последовательности действий:
генерируют эллиптическую кривую (ЭК), которая представляет собой совокупность пар МДЧ, называемых точками ЭК и над которыми задана операция сложения точек;
методом генерации случайной равновероятной последовательности формируют секретные ключи в виде МДЧ k1, k2, …, kn;
формируют открытые ключи в виде точек ЭК P1, P2, …, Pn, для чего генерируют точку G, имеющую значение порядка равное q (порядком точки ЭК называется наименьшее положительное целое число q, такое что результатом умножения данной точки на число q является так называемая бесконечно удаленная точка О; результатом умножения любой точки ЭК на нуль по определению является точка О [Б.Я.Рябко, А.Н.Фионов. Криптографические методы защиты информации. М., Горячая линия - Телеком, 2005. - 229 с.; см. с.97-130)]) и генерируют открытые ключи путем умножения точки G на МДЧ k1, k2, …, kn, т.е. формируют открытые ключи по формулам P1=k1G, P2=k2G, …, Pn=G;
принимают ЭД, представленный МДЧ H;
генерируют случайное МДЧ 0<t<q, по которому формируют точку R по формуле
R=tG;
формируют ЭЦП Q в виде пары МДЧ (r, s), для чего генерируют МДЧ r по формуле r=xR mod q, где xR - абсцисса точки R, а затем генерируют МДЧ s по формуле s=(tH+rki) mod q, где 1≤i≤n;
формируют первое проверочное МДЧ A, для чего генерируют МДЧ v по формуле ν=sH-1 mod q и МДЧ w по формуле w=(q-rH-1) mod q, затем генерируют точку R' по формуле R'=vG+wPi, после чего МДЧ A получают по формуле A=xR' mod q, где: xR' - абсцисса точки R';
формируют второе проверочное МДЧ B путем копирования МДЧ r: B=r;
сравнивают сформированные проверочные МДЧ A и B;
при совпадении параметров сравниваемых МДЧ A и B делают вывод о подлинности ЭЦП.
Недостатком ближайшего аналога является относительно невысокая производительность процедуры формирования и проверки ЭЦП, что связано с тем, что выполнение операций над точками ЭК включает операцию деления на МДЧ по модулю простого МДЧ, время выполнения которой в 10 и более раз превышает время выполнения операции умножения.
Целью изобретения является разработка способа формирования и проверки подлинности ЭЦП, заверяющей ЭД, свободного от операции деления по модулю простого МДЧ, благодаря чему повышается производительность процедур формирования и проверки ЭЦП.
Поставленная цель достигается тем, что в известном способе формирования и проверки подлинности ЭЦП, заверяющей ЭД, заключающемся в том, что генерируют секретный ключ в виде МДЧ x, по секретному ключу формируют открытый ключ Y в виде более чем одного МДЧ, принимают электронный документ, представленный МДЧ H, в зависимости от принятого электронного документа и от секретного ключа формируют электронную цифровую подпись Q в виде двух МДЧ, в зависимости от ЭД, ЭЦП и открытого ключа формируют первое A и второе B проверочные МДЧ, сравнивают их и при совпадении их параметров делают вывод о подлинности электронной цифровой подписи, согласно изобретению открытый ключ Y формируют в виде матрицы МДЧ размерности w×w, где 2≤w≤32.
Новым является то, что открытый ключ Y формируют в виде матрицы МДЧ размерности w×w, где 2≤w≤32, значение определителя которой равно единице по модулю p.
Выполнение операции умножения матриц МДЧ включает выполнение над МДЧ операций сложения и умножения по модулю простого МДЧ. Благодаря тому что при выполнении операций умножения и возведения в степень матриц МДЧ не требуется выполнять операцию деления по модулю МДЧ, обеспечивается повышение производительности процедур формирования и проверки подлинности ЭЦП.
Новым является также и то, что открытый ключ Y генерируют в виде матрицы МДЧ размерности 2×2, для чего генерируют матрицу МДЧ G размерности 2×2, имеющую порядок q, и открытый ключ Y формируют по формуле Y=Gx (mod p), а электронную цифровую подпись Q формируют в виде пары МДЧ e и s, для чего генерируют случайное МДЧ k, генерируют матрицу МДЧ R по формуле R=Gk (mod p), где p - МДЧ, являющееся модулем, по которому выполняются операции над МДЧ, входящими в состав матрицы МДЧ G при выполнении над G операции возведения в степень, затем формируют первое МДЧ e электронной цифровой подписи по формуле e=rH mod δ, где r=(r11||r12) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R, и δ - вспомогательное простое МДЧ, затем генерируют второе МДЧ s электронной цифровой подписи по формуле s=(k-ex)mod q, после чего формируют первое и второе проверочные МДЧ A и B по формулам A=r'H mod δ и B=e, где r=(r'11||r'12) МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R', вычисленной по формуле R'=YeGs(mod p).
Новым является также и то, что генерируют матрицу МДЧ G размерности 2×2, значение определителя которой равно единице по модулю p.
Новым является также и то, что открытый ключ Y генерируют в виде матрицы МДЧ размерности 3×3, для чего генерируют матрицу МДЧ G размерности 3×3, имеющую порядок q, и открытый ключ Y формируют по формуле Y=Gx (mod p), где p - МДЧ, являющееся модулем по которому выполняются операции над МДЧ, входящими в состав матрицы МДЧ G при выполнении над G операции возведения в степень, а электронную цифровую подпись Q формируют в виде пары МДЧ e и s, для чего генерируют случайное МДЧ k, генерируют матрицу МДЧ R по формуле R=Gk (mod p), затем формируют первое МДЧ е электронной цифровой подписи по формуле e=rH mod δ, где r=(r11||r12||r13) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R, и δ - вспомогательное простое МДЧ, затем генерируют второе МДЧ s электронной цифровой подписи по формуле s=(k+ex)mod q, после чего формируют первое и второе проверочные МДЧ A и B по формулам A=r'H mod δ и B=e, где r=(r'11||r'12||r'13) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R', вычисленной по формуле R'=Yq-eGs(mod p).
Новым является также и то, что генерируют матрицу МДЧ G размерности 3×3, значение определителя которой равно единице по модулю p.
Конкатенацией двух чисел α и b, представленных в некоторой позиционной системе исчисления в виде a=a1a2a3…ag и b=b1b2b3…bk, называется число c=a||b==a1a2a3…agb1b2b3…bk. Знак || обозначает операцию конкатенации.
Матрица МДЧ - это набор МДЧ, расположенный в следующем виде.
Матрицу МДЧ обычно обозначают заглавной латинской буквой, например Q. Ее также записывают в сокращенном виде {qij}, i=1, 2, …, m; j=1, 2, …, h, где МДЧ qij называются элементами матрицы. Если m=h, то матрица является квадратной. Размерность матрицы - это два натуральных числа, означающие количество строк (w) и количество столбцов (h) в матрице. Размерность матрицы записывается в виде w × h. Квадратной матрицей называется матрица, содержащая одинаковое число строк и столбцов. Над квадратными матрицами МДЧ определена операция умножения, которая осуществляется путем выполнения операций над МДЧ, являющимися элементами перемножаемых матриц МДЧ. В результате вычисляется новая матрица МДЧ, являющаяся результатом операции умножения двух матриц. Матрицы МДЧ Q и U называются равными, если выполняется равенство qij=uij для всех значений индексов. Детальное описание свойств матриц и действий над ними можно найти в широко доступных книгах: [А.И.Кострикин. Введение в алгебру. Основы алгебры. - М.: Физматлит. 1994. - 320 с.], [А.Г.Курош. Курс высшей алгебры. - М.: «Наука», 1971. - 431 с.] и [Л.Б.Шнеперман. Курс алгебры и теории чисел в задачах и упражнениях.- Минск: «Вышэйшая школам, 1986. - 272 с.]. Определителем матрицы Q, задаваемой набором чисел {qij}, называется алгебраическая сумма всевозможных произведений коэффициентов qij, взятых по одному из каждой строки и из каждого столбца, причем слагаемые, отвечающие четным перестановкам, входят со знаком «плюс», а слагаемые, отвечающие нечетным перестановкам, - со знаком «минус» (детальное описание правил вычисления определителя можно найти в книге [А.И.Кострикин. Введение в алгебру. Основы алгебры. - М.: Физматлит. 1994. - 320 с.]). При использовании над матрицами МДЧ, принадлежащими некоторому конечному множеству матриц МДЧ, операции умножения, определенной через операции сложения МДЧ по модулю p и умножения МДЧ по модулю p, определитель также вычисляется по модулю p. Операция умножения квадратной матрицы Q на квадратную матрицу U (матрицы О и U представлены наборами чисел {qij} и {uij}, i=1, 2, …, w; j=1, 2, …w, соответственно) выполняется по формуле:
либо по формуле
где p - простое МДЧ, cij - элемент матрицы С, являющейся результатом операции умножения матриц МДЧ Q и U. При вычислении по второй формуле и фиксированном размере МДЧ p матрицы МДЧ состоят из элементов конечного множества следующих МДЧ: 0, 1, 2, 3, …, p-1, т.е. совокупность всех существующих матриц заданной фиксированной размерности является конечным множеством. Однако число таких матриц чрезвычайно велико при достаточно больших значениях p, благодаря чему матрицы МДЧ с операциями над их элементами, выполняемыми по модулю простого МДЧ р, могут быть эффективно использованы для построения алгоритмов электронной цифровой подписи. Операция возведения матрицы М в натуральную степень n определяется как n-кратное умножение матрицы М на саму себя: MnМ·М·М·…М (n раз). Если операции сложения и умножения над элементами матрицы выполняются по модулю простого МДЧ p, то в конце правой части формул будем указывать в скобках mod p, например: С=Q+U (mod p); С=QU (mod p) и С=Qn (mod p). Единичной матрицей называется такая матрица Е, элементы которой равны δij:
т.е. все диагональные элементы равны единице, а все остальные равны нулю. Выполнение операций над матрицами осуществляется в вычислительных устройствах как действия над двоичными цифровыми электромагнитными сигналами, осуществляемыми по определенным правилам, определяемым через операции над МДЧ.
Определителем матрицы А размерности w×w, задаваемой набором чисел {aij}, называется алгебраическая сумма всевозможных произведений, включающих w сомножителей aij, взятых по одному из каждой строки и из каждого столбца таким образом, что в каждое произведение взят элемент из каждой строки и каждого столбца (ни в одно из произведений не входят два сомножителя, принадлежащие одной и той же строке или одному и тому же столбцу). При этом слагаемые, отвечающие четным перестановкам входят со знаком «плюс», а слагаемые, отвечающие нечетным перестановкам, - со знаком «минус» (детальное описание правил вычисления определителя можно найти в книге [А.И.Кострикин. Введение в алгебру. Основы алгебры. - М.: Физматлит. 1994. - 320 с.]). В заявленном способе используются матрицы, элементами которых являются МДЧ, принимающие значения от нуля до p-1 и над которыми выполняются операции сложения и умножения по модулю p. Для таких матриц значение определителя вычисляется по модулю p и находится в интервале от нуля до p-1, т.е. определитель равен некоторому значению d по модулю p, где 0≤d≤p-1.
При соответствующем выборе размерности матриц и модуля p множество матриц МДЧ является конечным, и это конечное множество содержит подмножество матриц МДЧ, которое образует группу, причем порядок этой группы является достаточно большим. Группа - это алгебраическая структура (т.е. множество математических элементов, над которыми определена некоторая математическая операция), которая обладает заданным набором свойств: операция ассоциативна, результатом выполнения операции над двумя элементами является также элемент этой же структуры, существует нейтральный элемент такой, что при выполнении операции над ним и другим некоторым элементом a группы результатом является элемент g. Детальное описание теории групп дано в широко известной математической литературе, например в книгах [А.Г.Курош. Теория групп.- М.: изд-во «Наука», 1967. - 648 с.] и [М.И.Каргаполов, Ю.И.Мерзляков. Основы теории групп.- М.: изд-во «Наука. Физматлит», 1996. - 287 с.]. Операция, определенная над элементами группы, называется групповой операцией. Групповой операцией в конечной группе матриц является операция умножения матриц МДЧ, определенная через операции сложения и умножения элементов матрицы по модулю p. Группа называется циклической, если каждый ее элемент может быть представлен в виде g=an для некоторого натурального числа n, где a - элемент данной подгруппы, называющийся генератором или образующим элементом циклической подгруппы, и степень n означает, что над элементом a выполняются n последовательных операций, т.е. an=a∘a∘a∘…∘a (n раз), где ∘ обозначает групповую операцию. Известно, что, если порядок группы есть простое число, то она циклическая [А.И.Кострикин. Введение в алгебру. Основы алгебры. - М.: Физматлит. 1994. - 320 с.]. Важной характеристикой группы является ее порядок, который равен числу элементов в группе. Для элементов группы также применяется понятие порядка. Порядком элемента группы является минимальное значение степени, в которую нужно возвести этот элемент, чтобы результатом операции было получение нейтрального элемента группы.
Обычно при разработке способов формирования и проверки ЭЦП используются циклические группы большого простого порядка или группы, порядок которых делится нацело на большое простое число [Венбо Мао. Современная криптография. Теория и практика. - М., СПб, Киев. Издательский дом «Вильямc», 2005. - 763 с.]. При соответствующем задании группы матриц МДЧ это условие легко обеспечивается. При этом стойкость способов формирования и проверки ЭЦП определяется сложностью задачи дискретного логарифмирования, которая состоит в определении значения степени n, в которую надо возвести заданный элемент группы, чтобы результатом этой операции был некоторый другой заданный элемент группы [Молдовян Н.А. Практикум по криптосистемам с открытым ключом. - СПб. БХВ-Петербург, 2007. - 298 с.].
Поскольку групповая операция над матрицами МДЧ выполняется путем выполнения модульных умножений и сложений над МДЧ, являющимися элементами матриц МДЧ, достаточно высокая трудность задачи дискретного логарифмирования в группе матриц МДЧ достигается при сравнительно малом значении размера модуля p, благодаря чему обеспечивается сравнительно высокая производительность операции возведения матриц МДЧ в большую степень. Поскольку производительность процедур формирования и проверки ЭЦП определяется производительностью операции возведения в степень, то при использовании операций над матрицами МДЧ обеспечивается сравнительно высокая производительность процедур формирования и проверки ЭЦП.
Порядком матрицы М называется наименьшее натуральное число q, такое что Mq=Е, т.е. такое, что результатом умножения матрицы М на саму себя q раз является единичная матрица Е.
Корректность заявленного способа доказывается теоретически. Рассмотрим, например, варианты реализации заявленного способа по пп.3 и 4 формулы изобретения. Открытый ключ, соответствующий секретному ключу x, представляет собой матрицу МДЧ
Y=Gx(mod p).
Матрица МДЧ R генерируется по формуле R=Gk (mod p), а первое МДЧ в ЭЦП (e, s) вычисляется по формуле e=rH mod δ, где r=(r11||r12) - МДЧ, равное конкатенации МДЧ первой строки матрицы e=rH mod δ, где r=(r11||r12) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R. Значение s генерируется по формуле
s=(k-ex) mod q, поэтому матрица МДЧ R', генерируемая по формуле R'=YeGs (modp) и используемая для формирования первого проверочного МДЧ A, равна
R'=YeGs(mod p)=GexGs(mod p)=Gex+(k-ex)(mod p)=Gk(mod p)=R.
Поскольку матрицы МДЧ R' и R одинаковы, то конкатенация МДЧ первой строки матрицы МДЧ R' равна конкатенации МДЧ первой строки матрицы МДЧ R, т.е. r'=(r'11||r'12 ||r'13)=r=(r11||r12||r13), следовательно, A=r'H mod δ=rH mod δ=e=B. Это означает, что правильно сформированная коллективная ЭЦП удовлетворяет процедуре проверки подписи, т.е. корректность процедур генерации и проверки ЭЦП доказана. Аналогичным образом дается доказательство корректности и для частных вариантов реализации способа по пп.5 и 6 формулы изобретения.
Рассмотрим примеры реализации заявленного технического решения с конкретными численными значениями использованных параметров. Использованные в примерах матрицы были сгенерированы с помощью программы, разработанной специально для генерации матриц, включая матрицы с заданным порядком, и выполнения операций над матрицами МДЧ. Приводимые в примере МДЧ записаны для краткости в виде десятичных чисел, которые в вычислительных устройствах представляются и преобразуются в двоичном виде, т.е. в виде последовательности сигналов высокого и низкого потенциала.
Пример 1. Данный пример иллюстрирует вариант реализации заявленного способа по п.2 формулы изобретения (этот пример и остальные приводимые ниже примеры одновременно иллюстрируют и п.1 формулы изобретения). В данном примере формирование и проверка ЭЦП включает следующую последовательность действий.
1. Формируют простое число р, такое что p-1 содержит большой простой множитель q, т.е. p=Nq+1, где N - четное число: p=10005473, где q=2767 и N=3616.
2. Генерируют секретный ключ x в виде случайного МДЧ:
x=33827005351925439685.
3. Формируют открытый ключ Y в виде матрицы размерности 5×5, для чего выполняют следующую последовательность действий:
3.1 Генерируют матрицу G размерности 5×5, значение определителя которой равно 1 по модулю p=10005473:
G=(5521418; | 9882273; | 9796931; | 4431857; | 2841720; |
4578372; | 9738756; | 4426894; | 3055035; | 8474489; |
4006629; | 4515646; | 4234851; | 5725156; | 2191602; |
9982583; | 9078580; | 4277820; | 3587111; | 8135893; |
7201177; | 4103066; | 6317790; | 1548718; | 7990799). |
Полученная вспомогательная матрица МДЧ G имеет порядок q, т.е. для нее выполняется условие Gq mod p=Е, где Е - единичная матрица.
3.2 Генерируют матрицу Y по формуле Y=Gx (mod p):
Y=(4296743; | 8563867; | 8471863; | 8368695; | 7928365; |
4134935; | 3148248; | 6191206; | 6229991; | 772279; |
1327899; | 2606056; | 639497; | 1480633; | 6698567; |
9124160; | 9801301; | 7270257; | 4120460; | 2299830; |
6583146; | 7368696; | 9905973; | 1882611; | 7275024). |
Полученная матрица такова, что значение ее определителя по модулю p равно единице. Это имеет место в силу следующего известного математического факта: определитель произведения матриц равен произведению определителей матриц, являющихся сомножителями [А.Г.Курош. Курс высшей алгебры. - М.: «Наука», 1971. - 431 с.].
4. Принимают ЭД, представленный, например, следующим МДЧ H (в качестве которого может быть взята, в частности, хэш-функция от ЭД): H=453463.
5. Формируют ЭЦП Q в виде пары чисел (e, s), для чего выполняют следующие действия:
5.1. Генерируют случайное число k: k=14793055334187273340.
5.2. Формируют матрицу R по формуле R=Gk (mod p):
R=(8460438; | 5362248; | 2710988; | 2628738; | 3561800; |
435362; | 5699998; | 9421229; | 1097018; | 2072055; |
9502353; | 7784036; | 3072771; | 712851; | 2950747; |
4615012; | 4704650; | 5571737; | 5627045; | 864825; |
6956383; | 7481137; | 3731806; | 6080056; | 1515799). |
5.3. Генерируют первый элемент e электронной подписи в виде МДЧ, вычисляемого по формуле e=rH mod δ, где r=(r11||r12||r13||r14||r15) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R и δ - дополнительное простое МДЧ (δ=590162611): e=36603270.
5.4. Формируют значение s путем выполнения операции, задаваемого формулой
s=(k+ex)mod q: s=385.
6. Формируют первое проверочное МДЧ A, для чего выполняются следующие действия.
6.2. Генерируют матрицу R'=YeGs (mod p):
Ye=(517561; | 8536686; | 6521010; | 4917725; | 8562973; |
1364690; | 3655546; | 3336162; | 6584305; | 6377174; |
5175358; | 4529740; | 9376409; | 4684982; | 5575429; |
7366320; | 9877290; | 852679; | 2007774; | 8990862; |
7166747; | 6359216; | 3306906; | 4104536; | 185598) |
Gs=(6000694; | 4327060; | 2285488; | 3818885; | 7999488; |
363129; | 4668557; | 9725034; | 2664600; | 8325335; |
4873523; | 4533324; | 7194179; | 5582214; | 5934647; |
866186; | 6026734; | 5845480; | 7846208; | 1090778; |
4219697; | 6286490; | 7327398; | 9134835; | 4959056) |
R'=(8460438; | 5362248; | 2710988; | 2628738; | 3561800; |
435362; | 5699998; | 9421229; | 1097018; | 2072055; |
9502353; | 7784036; | 3072771; | 712851; | 2950747; |
4615012; | 4704650; | 5571737; | 5627045; | 864825; |
6956383; | 7481137; | 3731806; | 6080056; | 1515799). |
6.3. Генерируют МДЧ A по формуле A=r'H mod δ и B=e, где r'=(r'11||r'12||r'13||r'14||r'15) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R', где дополнительное МДЧ δ=590162611: A=36603270.
7. Формируют второе проверочное МДЧ B путем копирования МДЧ е:
B=e=36603270.
8. Сравнивают первое A и B второе проверочные МДЧ.
Сравнение показывает, что параметры МДЧ A и B совпадают. Совпадение значений A и B означает, что ЭЦП является подлинной, т.е. относится к принятому ЭД, представленному МДЧ Н.
Пример 2. Реализация заявленного способа по п.4 формулы изобретения (этот пример иллюстрирует частный вариант реализации п.3 формулы изобретения, отличающийся тем, что генерируется матрица G со значением определителя равным единице по модулю p). Предположим, что пользователю необходимо подписать сообщение, представленное МДЧ H. Для этого выполняется следующая последовательность действий.
1. Формируют простое число p, такое что p-1 содержит большой простой множитель q, т.е. p=Nq+1, где N - четное число:
p=1213101055353860365198942393055406360449930466509, где q=910683421037711696704229;
N=1332077676314286889695452.
2. Генерируют секретный ключ в виде случайного МДЧ x:
x=26412233452258564873.
3. Формируют открытый ключ в виде матрицы Y размерности 2×2, значение определителя которой равно единице по модулю p, для чего выполняют следующую последовательность действий:
3.1 Генерируют матрицу G размерности 2×2, значение определителя которой по модулю p равно 1, причем такую, что ее порядок равен значению q:
G=(1202355537700013630255474902061928748859377385024;
296060370551540592849932964420977114748927579258\\
661780860731578736974963326904080423309318448732;
726266908513412605605689590295630046107457372564). Ввиду достаточно большой длины МДЧ, являющихся элементами матрицы G, каждый элемент матрицы указан отдельно, при этом строки матрицы разделены двойной наклонной чертой. В такой записи элементы матрицы g11, g12 g21 и g22 записаны последовательно сверху вниз в отдельных строках.
3.2 Генерируют матрицу Y по формуле Y=Gx (mod p):
Y=(765668645922971131462637659176175002121265271912;
632062461662953235981713575015866586830213534137\\
686546034364915360874564606107543524491696599648;
173718371623103935352742823316230007430864301765).
4. Принимают ЭД, представленный, например, следующим МДЧ H:
H=435346457676523423.
5. Формируют ЭЦП Q в виде пары чисел (e, s), для чего выполняют следующие действия:
5.1. Пользователь генерирует случайное число k:
k=27049461528626923206.
5.2. Затем формируют матрицу R путем выполнения операции, задаваемой формулой R=Gk (mod p):
R=(455363329583359023625266899777316926640501013681;
648976367168776500763467574763935700112689500783\\
193145359861504811918206048283567465987970607659;
385854600850718001481881779520448776959506610386).
5.3. Генерируют первый элемент e электронной цифровой подписи в виде МДЧ, вычисляемого по формуле e=rH mod δ, где r=(r11||r12) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R, δ - дополнительное простое МДЧ
δ=590162611):
e=247157248.
5.4. Формируют второй элемент подписи s путем выполнения операции, задаваемой формулой s=(k-ex)mod q: s=714538875050403859391403.
6. Формируют первое проверочное МДЧ A, для чего выполняются следующие действия.
6.1. Генерируют матрицу R'=YeGs (mod p):
Ye=(1054289836977813241220692865884055278112848775391;
143920443514015090545932680147055853856811193745\\
412720594141934652505374888529868609136342061615;
497953129779437524509848233343978685201212761147)
Gs=(557140970524604453256865016479207346842314027711;
853953720518151165717250776060151697410440223270\\
654964802199660308072055093173837833684333897401;
246994405741321957387664288252066868517103968796)
R'=(455363329583359023625266899777316926640501013681;
648976367168776500763467574763935700112689500783\\
193145359861504811918206048283567465987970607659;
385854600850718001481881779520448776959506610386).
6.3. Генерируют МДЧ A по формуле A=r'H mod δ, где r'=(r'11||r'12) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R', где дополнительное МДЧ δ=590162611:
A=247157248.
7. Формируют второе проверочное МДЧ B путем копирования МДЧ е:
B=e=247157248.
8. Сравнивают первое A и B второе проверочные МДЧ.
Сравнение показывает, что параметры МДЧ A и B совпадают. Совпадение значений A и B означает, что сформированная ЭЦП является подлинной, т.е. относится к принятому ЭД, представленному МДЧ H.
Пример 3. Реализация заявленного способа по п.6 формулы изобретения (частный вариант реализации п.5 формулы изобретения).
1. Формируют простое число p, такое что p-1 содержит большой простой множитель q, т.е. p=Nq+1, где N - четное число:
p=882693152152073761004890298352885499372774448173, где q=985479877918161283757537;
N=895698808195631774845356.
2. Генерирует секретный ключ x в виде случайного МДЧ:
x=3451073958338264285.
3. Формируют открытый ключ Y в виде матрицы размерности 3×3, значение определителя которой по модулю p равно 1, для чего выполняют следующую последовательность действий:
3.1 Генерируют матрицу G размерности 3×3, значение определителя которой по модулю p равно 1, причем такую, что ее порядок равен значению q:
G=(363721035304855322270717595705381196622143562753;
342045577522215337424809683133061190595364260060;
568428018033030838358100753510855868372542160348\\
388524193794655360623939908830582907417739970436;
435124243767703655645468663573798796968229028088;
463861800676775168887578605344607683965346873378\\
728967772850853898600948656958266412109957471628;
430092459273736209053619942186148755067683099452;
436091184234493207523503292485824458657311822562).
Полученная дополнительная матрица G имеет порядок q, т.е. для нее выполняется условие Gq mod p=1.
3.2 Генерируют матрицу Y пo формуле Y=Gx (modp):
Y=(793649427315761259406026831506906225041194804340;
645841333769727307401444994977369021466398790655;
638569888366953175867918938367514561265665271725\\
805215282344370055909657251366622501259863265035;
554880153034978377878010779839396184509620640898;
403887562274208021593244476181441917851844232905\\
353096382126238920667662144589525065608865066344;
138815970154523201194960482573446216625756028413;
653804408722869157056518320036150833843832588519).
4. Принимают ЭД, представленный, например, следующим МДЧ H (в качестве которого может быть взята, в частности, хэш-функция от ЭД):
H=6756345234523465.
5. Формируют ЭЦП Q в виде пары чисел (e, s), для чего выполняют следующие действия:
5.1. Пользователь генерирует случайное число k:
k=12860134276868188623.
5.2. Формируют матрицу R путем выполнения операции, задаваемых формулой
R=Gk(mod p):
R=(456138598778574934094067405707408823929620188965;
134838090968284020883275585101955145958537373351;
712597734764234344232810530794307868494671952084\\
725194419963133604462301246966629245403495216092;
196023528841210323468350988094893160456639667948;
479537360665405040641147720611639243385991097375\\
747287101147541789531616146212253869003469601318;
188409773319432556126047166877690183782372779200;
32009504965824735724901667917940853117887655802).
5.3. Генерируют первый элемент e электронной подписи в виде МДЧ, вычисляемого по формуле e=rH mod δ, где r=(r11||r12||r13) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R, δ - дополнительное простое МДЧ
(δ=1011932689):
e=644117540.
5.5. Формируют значение s путем выполнения операции, задаваемого формулой
s=(k+ex)mod q:
s=640156557585861119001588.
6. Формируют первое проверочное МДЧ A, для чего выполняются следующие действия.
6.2. Генерируют матрицу R'=Yq-eGs(mod p)=Yq-eGs(mod p):
q-e=985479877918160639639997;
Yq-e=(480039256397844235392097964436954752722231271379;
43525703614678367797622053909289662734508446485;
621482813419723875717789152794218157594939695803\\
594427188164364341885587693597522368397543407967;
795365846233004098177105822781927741349303132756;
642387569971198053344061537576576204643826715679\\
543716309036298412258991999827654617223985145669;
180471582091367944622121423646832322388139112345;
140159879304206682557015533315183354508497921826)
Gs=(630064404804120002899043649410178012882848244991;
275025358523863904761511873188319990669954654707;
197905564701079164883948973819987567672616933610\\
192845503297590775248455116562714514304860114920;
404238445746336652176571611625346772176575052622;
162276339095416444649406055174213223482444891319\\
496371813589504230909314363323196807492773807177;
836287570593455187972972244740643582757106958732;
881783771774713241919479482510519794701877329632)
R'=(456138598778574934094067405707408823929620188965;
134838090968284020883275585101955145958537373351;
712597734764234344232810530794307868494671952084\\
725194419963133604462301246966629245403495216092;
196023528841210323468350988094893160456639667948;
479537360665405040641147720611639243385991097375\\
747287101147541789531616146212253869003469601318;
188409773319432556126047166877690183782372779200;
32009504965824735724901667917940853117887655802).
6.3. Генерируют МДЧ A по формуле A=r'Hmod δ и B=е, где r'=(r'11||r'12||r'13) - МДЧ, равное конкатенации МДЧ первой строки матрицы МДЧ R', где дополнительное
МДЧ
δ=1011932689:
A=644117540.
7. Формируют второе проверочное МДЧ B путем копирования МДЧ е:
B=е=644117540.
8. Сравнивают первое A и B второе проверочные МДЧ.
Сравнение показывает, что параметры МДЧ A и B совпадают. Совпадение значений A и B означает, что ЭЦП является подлинной, т.е. относится к принятому ЭД, представленному МДЧ H.
Примеры 1-3 экспериментально подтверждают корректность реализации заявленного способа, что дополняет приведенное выше математическое доказательство корректности конкретных реализаций заявленного способа формирования и проверки ЭЦП, заверяющей ЭД.
По аналогии с приведенными выше частными вариантами реализации заявленного способа можно построить другие частные варианты реализации с использованием матриц размерности 16×16