|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Основные операции криптографических преобразований в метрике эллиптических кривыхНа первом шаге алгоритмических процессов производится выбор генераторной точки G в заданном пространстве, а затем необходимо выполнить операции удвоения, учетверения и т.д. координат генераторной точки, т.е. получить множество точек: G; [2]G; [4]G; [8]G … [2n]G. На следующем шаге определяются композиции различных точек эллиптической кривой, например: [3]G = G + [2]G; [5]G = G + [4]G; [3]G = (x1; y1) + (x2; y2) [5]G = (x1; y1) + (x4; y4) и так далее. Эти операции над множествами точек заданной эллиптической кривой необходимы для вычисления любой точки, принадлежащей этой кривой, т.к. любой представитель этого множества может быть отображен как результат операций удвоения, учетверения и т.д. значений генераторной точки G и результатов композиций получаемых значений. В криптографических преобразованиях эти функциональные операции необходимы для вычисления открытых ключей шифрования, выбора значений закрытых (секретных) ключей дешифрования при условии случайности такой выборки, непосредственного выполнения операций шифрования-дешифрования и аутентификации открытых сообщений с использованием множества точек, принадлежащих задаваемым эллиптическим кривым. При определении множества точек, принадлежащих заданной эллиптической кривой для выполнения операций вычисления ключей шифрования-дешифрования, формирования криптограмм и их расшифровки, а также выполнения операций аутентификации электронных сообщений необходимо рассмотреть процессы вычисления операций удвоения генераторной точки G и далее получаемых точек, а также операций вычисления композиций различных точек эллиптической кривой. Изначально рассмотрим процесс вычисления операций удвоения точек эллиптической кривой. Пусть принята генераторная точка G на заданной эллиптической кривой Z: Y2 = (X3 + aX + b) mod P, для примера рассмотрим эллиптическую кривую Z: Y2 = (X3 + 8X + 5) mod 293. Случайным образом задается значение генераторной точки, принадлежащей этой кривой, например, принимается значение хG = 18. Значение генераторной точки, задаваемое случайным образом, имеет одно весьма важное ограничение – необходимо и достаточно, чтобы при заданном значении абсциссы генераторной точки (хG) существовало целое значение ординаты (yG) этой точки, т.е. условие существования целочисленного значения квадратного корня, извлекаемого из заданного уравнения эллиптической кривой: YG = = = . Найдены сразу две точки эллиптической кривой G = (18; 11) и G = (18; -11) = (18; 282). Примем значение генераторной точки G = (18; 11). Для определения множества точек, принадлежащих заданной эллиптической кривой вычисляется значение удвоения генераторной точки G, например: точка G2 → [2]G. Эта запись интерпретируется следующим образом – определение значения точки G2 влечет за собой операцию удвоения генераторной точки G. Для определения координат точки G2 необходимо воспользоваться следующими соотношениями: xn = k2 – xn-2 – xn-1 числовое значение абсциссы новой вычисляемой точки; yn = k (xn-1 – xn) – yn-1 числовое значение ординаты новой вычисляемой точки; к – числовое значение углового коэффициента касательной, проведенной в точке удвоения (на первом шаге вычислений касательная проведенная в генераторной точке). Для вычисления углового коэффициента касательной необходимо продифференцировать обе части заданного уравнения эллиптической кривой ZР (а, в): Y2 = (X3 + aX + b) mod P (Y2)' = (X3 + aX + b)'; 2YY' = 3X2 + a, откуда Y' = k = . В частном случае k = , т.е. угловой коэффициент касательной определяется через параметр эллиптической кривой «а» и координаты рассматриваемой точки – точки удвоения. Так, например для уравнения: Z: Y2 = (X3 + 8X + 5) mod 293 угловой коэффициент касательной в генераторной точке (точке удвоения) определяется как: k = mod 293 = mod 293 = mod 293 = = 980 * 22-1 mod 293. Для вычисления значения 22-1 mod 293 воспользуемся следующим соотношением при условии, что Р = 293 простое число, то в соответствии с малой теоремой Ферма «а-1 mod P = a φ(P) – 1 mod P», где «22-1 mod 293» – функция Эйлера, которая при Р – простое число определяется как: φ(Р) = Р-1. Следовательно, «22-1 mod 293 = 22291 mod 293». Для выполнения операции возведения числа в степень по модулю необходимо применить методику раздела 1.3. В результате вычислений получаем «kG = 22291 mod 293 = 40 mod 293 → 40, 980 * 40 mod 293 = 39200 mod 293 = 231 mod 293 → 231». Для определения координат точки удвоения генераторной точки необходимо выполнить следующие вычисления при условии, что при удвоении генераторной точки эллиптической кривой числовые значения абсцисс точки удвоения (xn-1; xn-2) равны между собой. Следовательно, x[2]G = K2 – 2xG; y[2]G = K * (xG - x[2]G) - yG Координаты точки удвоения, рассматриваемой в качестве примера, определятся как: - при выбранной генераторной точки G = (xG; yG) = (18, 11) и значении углового коэффициента касательной kG = 231; - числовое значение абсциссы точки удвоения x[2]G = (kG2 - 2 xG) mod 293 = (2312 – 2 * 18) mod 293 = 292 mod 293 → 292. Y[2]G = K * (xG - x[2]G) - yG = 231 * (18 – 292) – 11 mod 293 = = 276 mod 293 → 276. Таким образом, результат удвоения генераторной точки G = (18; 11) определится как [2]G = (x[2]G; Y[2]G) = (292; 276). Следующей операцией при вычислении множества точек, принадлежащих заданной эллиптической кривой, является операция вычисления композиций на множествах. Для примера рассмотрим вычисление точки [3]G как результат композиции точек G и [2]G; [3]G = G + [2]G. Для определения координат точки [3]G как результат композиции точек эллиптической кривой G и [2]G изначально вычисляется значение углового коэффициента прямой, проходящей через точки G и [2]G: k = (y[2]G - yG) (x[2]G - xG) mod P = (276 – 11) (292 – 18) mod 293 = =265 274 mod 293 = 265 * 274-1 mod 293 = 265 * 274φ(p) – 1 mod 293 = = 265 * 274291 mod 293 = 265 * 185 mod 293 = 49025 mod 293 = 94 mod 293 → 94. Затем определяются координаты точки [3]G = (x[3]G; y[3]G): x[3]G = k2 – xG – x[2]G y[3]G = k * (xG – x[3]G) - yG Для рассматриваемой эллиптической кривой Z: Y2 = (X3 + 8X + 5) mod 293 эти координаты определятся как: x[3]G = k2 – xG – x[2]G = (942 – 18 – 292) mod 293 = 8526 mod 293 = = 29 mod 293 → 29. y[3]G = k * (xG – x[3]G) - yG = 94 (18 – 29) – 11 mod 293 = = - 1045 mod 293 = - 852 mod 293 = - 559 mod 293 = -166 mod 293 = = 127 mod 293 → 127. Таким образом, результат вычисления композиции двух точек G и [2]G определяется как [3]G = (x[3]G; y[3]G) = (29; 127). После выполнения операции вычисления множества точек дополнительно проверяется условие их принадлежности выбранной эллиптической кривой. Так например, в рассматриваемой задаче при определении координат генераторной точки (раздел 3.3.1) процесс подтверждения ее принадлежности к заданной эллиптической кривой выполняется следующим образом: 1. Заданное уравнение эллиптической кривой определяется как: ZP(a; b) = Z293(8; 5) = X3 + 8X + 5 mod 293. 2. При значениях координат генераторной точки G = (18; 11), yG =11; xG =18; a =8; b = 5; P = 293 получаем: yG2 = (xG 3 + axG + b) mod P; 112 = (183 + 8* 18 + 5) mod 293; 121 mod 293 = (5832 + 144 + 5) mod 293; 121 mod 293 = 5981 mod 293; 121 mod 293 = 121 mod 293. Следовательно, генераторная точка G принадлежит заданной эллиптической кривой, т.к. левые и правые части уравнения эллиптической кривой при заданных параметрах и вычисленных значениях координат (yG; xG) равны между собой. Далее были определены координаты удвоения генераторной точки [2]G = (x[2]G; y[2]G) = (292; 276) и координаты композиции точек G и [2]G: [3]G = G + [2]G = (x[3]G; y[3]G) = (29; 127). Проверяются условия принадлежности точек [2]G и [3]G заданной эллиптической кривой. Для точки [2]G = (292; 276): 2762 mod 293 = (2923 + 8 * 292 + 5) mod 293; 76176 mod 293 = (24897088 + 2336 +5) mod 293; 289 mod 293 = 24899429 mod 293; 289 mod 293 = 289 mod 293 – достоверно. Для точки [3]G = (29; 127): 1272 mod 293 = (293 + 8 * 29 + 5) mod 293; 16129 mod 293 = (24389 + 232 + 5) mod 293; 14 mod 293 = 24626 mod 293; 14 mod 293 = 14 mod 293 – достоверно. Результаты проверки достоверны, следовательно полученные точки G; [2]G; [3]G принадлежат заданной эллиптической кривой. В практической криптографии с использованием методов преобразований на эллиптических кривых для каждой полученной точки [n]G производится проверка на достоверность факта ее принадлежности заданной эллиптической кривой. Это условие необходимо для построения операций шифрования-дешифрования и аутентификации открытых сообщений, т.к. в противном случае функционирование системы исключается. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.) |