КРИПТОГРАФИЯ НА УПРОЩЕННОЙ ЭЛЛИПТИЧЕСКОЙ КРИВОЙ
CRYPTOGRAPHY ON SIMPLIFIED ELLIPTICAL CURVE

Настоящее изобретение касается шифрования сообщении на основе использования точек на эллиптической кривой, а более конкретно, упомянутого шифрования детерминированной природы.
Для применения криптографического преобразования к сообщению, для вставления произвольных чисел в математические структуры применяют обычные алгоритмы. Для этой цели эллиптические кривые являются математическими структурами, которые способны упростить применение таких криптографических преобразований и одновременно уменьшить потребности в памяти по сравнению со случаем использования других криптографических преобразований.
Тем не менее, эффективные алгоритмы, предназначенные для вставки произвольных чисел с использованием эллиптических кривых, являются вероятностными. Следовательно, время выполнения таких алгоритмов не является постоянным, оно зависит от шифруемого сообщений. Таким образом, если нарушитель определит, что при применении алгоритма время его работы было различным, он может получить информацию о зашифрованном сообщении.
Для маскировки времени, нужного для вероятностного алгоритма вставки, возможно обеспечить добавление ненужных этапов в этот алгоритм, чтобы его применение всегда занимало одинаковый период времени, независимо от обрабатываемого сообщения.
Точка Р эллиптической кривой определяется ее абсциссой X и ординатой Y, при этом X и Y удовлетворяют следующему выражению:
<mrow><mtext>f(X)</mtext><mo>=</mo><msup><mtext>Y</mtext><mtext>2</mtext></msup><mtext>,</mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> (1)</mtext></mrow>
3
где f(X) - это многочлен f(X)=X+аХ+b.
Известно семейство многочленов, которые удовлетворяют равенству Скальба, которое дает возможность определить такую точку на эллиптической кривой, как описано в документе «Construction of Rational Points on Elliptic curves over finite fields» (Построение рациональных точек эллиптических кривых над конечными полями), авторы Эндрю Шаллуе (Andrew Shallue) и Кристиан ван де Вустейне (Christiaan van de Woestijne).
1
2
3
Многочлены X(t), X(t), X(t) и U(t) удовлетворяют равенству Скальба, если они удовлетворяют следующему выражению:
<mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>3</mn></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><msup><mi>U</mi><mn>2</mn></msup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>
где f - это функция, которая определяет рассматриваемую эллиптическую кривую, а t - параметр.
Многочлены, которые удовлетворяют равенству Скальба, могут иметь два параметра u и t. В этом случае равенство Скальба записывается следующим образом:
1
2
3
2
f(X(t, u)).f(X(t, u)).f(X(t, u))=U(t, u)
Выражения такого типа могут использовать два параметра u и t. Тем не менее, в рассматриваемых приложениях целесообразно предусмотреть присвоение любого значения параметру u или в качестве альтернативы параметру t. Таким образом, остается выбрать значение единственного параметра.
1
1
2
2
3
3
1
2
3
q
1
2
3
q
При выбранных параметрах t и u, заметим, что X=X(t, u), X=X(t, u), X=X(t, u), U=U(t, u), при этом X, X, X и U являются элементами F. Это выражение (2) означает, что, по меньшей мере, одно из чисел f(X), f(X) и f(X) соответствует квадрату элемента в конечном поле F.
1
q
<mrow><mi>P</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>,</mo><mtext> </mtext><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mi>i</mi></msub></mrow></msqrt><mo stretchy="false">)</mo></mrow>
Тогда, когда определен квадрат элемента, f(X), в поле F, мы можем получить точку на эллиптической кривой
.
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mi>i</mi></msub><mo stretchy="false">)</mo></mrow></msqrt></mrow>
q
Вычисление
можно осуществить с помощью вычисления возведения в степень, когда характеристика q поля F удовлетворяет равенству:
q=3 mod 4.
В этом случае известно, что
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mi>i</mi></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mi>i</mi></msub><mo stretchy="false">)</mo></mrow><mrow><mrow><mo>(</mo><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mo>)</mo></mrow><mo>/</mo><mn>4</mn></mrow></msup><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>
1
2
3
q
1
q
2
3
Следовательно, для определения точки на эллиптической кривой (1) необходимо определить, какое число среди трех чисел f(X), f(X) и f(X) соответствует квадрату элемента в конечном поле F. Для этой цели мы можем предусмотреть сначала проверку того, является ли элемент f(X) квадратом элемента в конечном поле F, далее, если это не так, применить ту же проверку для элемента f(X) и, наконец, если это тоже не правильно, аналогично проверить элемент f(X). Тем не менее, при такой процедуре определение точки на эллиптической кривой не всегда занимает одинаковое время, так как это определение выполняется быстрее, если квадратом является первый элемент, по сравнению со случаем, когда только третий элемент является квадратом.
Потенциальный нарушитель может использовать эту разницу в затраченном времени для определения точки на эллиптической кривой для взлома секретности, связанной с параметром, который позволит сгенерировать эту точку. А в области криптографии эти параметры должны оставаться секретными.
Эти параметры могут, в частности, соответствовать паролям. Таким образом, важно, чтобы определение этих точек не давало информации, предоставляющей возможность взлома секретности параметра и, соответственно, должны быть исключены атаки на основе анализа времени, затраченного на определение точки на кривой.
i
Для преодоления этого недостатка возможно методично проверять три элемента f(X) для всех i от 1 до 3. Таким образом, время определения точки на кривой не будет зависеть от определенной точки.
q
Тем не менее, проверка, является ли элемент выражения (2) квадратом в конечном поле F, является сложной операцией, в частности, предполагающей возведение в степень, реализация которого затратна с точки зрения времени. В случае, когда мы хотим определить точку на эллиптической кривой на основе равенств Скальба и осуществлять эти определения за постоянное время, в описанном выше случае требуется четыре операции возведения в степень, одно возведение в степень для проверки каждого из членов в выражении (2) Скальба и одно возведение в степень для вычисления квадратного корня, как описано в выражении (3).
Цель настоящего изобретения состоит в улучшении этой ситуации.
Согласно первому аспекту настоящего изобретения предложен способ выполнения криптографического преобразования в электронном компоненте, включающий в себя этап получения точки P(X, Y) исходя по меньшей мере из одного параметра t на эллиптической кривой, удовлетворяющей выражению
2
Y=f(X); и
1
2
исходя из многочленов X(t), X(t) и U(t), удовлетворяющих следующему равенству:
1
2
2
f(X(t)).f(X(t))=U(t)
q
в конечном поле F, независимо от параметра t, при этом q удовлетворяет равенству q=3 mod 4;
упомянутый способ включает в себя следующие этапы:
/1/ получают значение параметра t;
/2/ определяют точку P путем выполнения следующих подэтапов:
1
1
2
2
/i/ вычисляют X=X(t), Х=X(t) и U=U(t);
1
q
1
1
1
/ii/ проверяют, является ли элемент f(X) квадратом в конечном поле F, и если является, вычисляют квадратный корень из элемента f(X), абсциссой точки P является X, а квадратный корень f(X) является ординатой точки P;
2
2
2
/iii/ иначе вычисляют квадратный корень элемента f(X), абсциссой точки P является X, а квадратный корень из f(X) является ординатой точки P;
/3/ используют упомянутую точку P в следующих криптографических приложениях: при шифровании, или хешировании, или подписывании, или аутентификации или идентификации.
Заметим здесь, что определение точки на эллиптической кривой осуществляют на основе подходящего выражения:
<mrow><msub><mrow><mtext>-f(X</mtext></mrow><mtext>1</mtext></msub><mtext>)</mtext><msub><mrow><mtext>.f(X</mtext></mrow><mtext>2</mtext></msub><mtext>)</mtext><mo>=</mo><msup><mtext>U</mtext><mtext>2</mtext></msup><mtext>.</mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> (4)</mtext></mrow>
Это выражение следует из равенства (2) Скальба. Фактически это выражение можно получить, выполнив следующее присваивание:
3
f(X)=-1.
q
q
Далее в конечном коле F, в котором q=3 mod 4, элемент -1 не является квадратом. Следовательно, только два элемента выражения (4) осталось проверить для того, чтобы решить, какой из двух элементов соответствует квадрату в F.
Благодаря этим конструкциям возможно определить точку на эллиптической кривой образом, подходящим для использования в области криптографии, так как, с одной стороны, это определение требует одного и того же времени независимо от входного параметра t и, с другой стороны, эффективно, так как уменьшается количество требуемых операций.
Это определение занимает постоянное время, которое не зависит от входного параметра или параметров. Фактически, даже если этот способ подразумевает различные варианты обработки в зависимости от элемента, который соответствует квадрату в равенстве Скальба, независимо от определяемой точки на кривой осуществляют одинаковое количество операций одинакового типа. Более конкретно, независимо от определяемой точки на кривой, выполняют следующий список операций:
q
- проверка на то, что элемент является квадратом в F;
- определение квадратного корня.
Следовательно, невозможно осуществить атаку, основанную на затратах времени.
q
Более того, это определение эффективно, так как ограничено количество выполняемых затратных операций. Фактически, благодаря выражению (4) вместо трех элементов в выражении (2) необходимо проверить только два элемента, чтобы определить соответствуют ли они квадратам в конечном поле F, при этом реализуется максимум две операции типа возведения в степень.
Этот вариант осуществления изобретения является общим и может быть легко применен к любому семейству многочленов, которые удовлетворяют равенству (4).
В одном варианте осуществления настоящего изобретения предложено на этапе /2/-/ii/ осуществлять следующие этапы:
1
- вычисляют такой R, что
<mrow><msub><mi>R</mi><mn>1</mn></msub><mo>=</mo><msup><mrow><mo stretchy="false">(</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
,
1
- если R равен 1, то
1
q
- решают, что элемент f(X) является квадратом в поле F и
<mrow><msub><mi>Y</mi><mn>1</mn></msub><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
- вычисляют
,
<mrow><msub><mi>Y</mi><mn>2</mn></msub><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
- иначе вычисляют
.
Здесь выполняют только два возведения в степень, независимо от используемого варианта обработки.
В другом варианте осуществления изобретения также возможно уменьшить количество операций возведений в степень, которые являются наиболее затратными выполняемыми операциями в этом способе. Фактически на этапе /2/-/ii/ осуществляют следующие этапы:
<mrow><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup></mrow>
- вычисляют такой
, что
<mrow><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
,
- вычисляют такой , что
<mrow><msubsup><mi>R</mi><mn>2</mn><mo>'</mo></msubsup><mo>=</mo><msubsup><mi>R</mi><mn>1</mn><mrow><mo>'</mo><mn>2</mn></mrow></msubsup></mrow>
,
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup></mrow>
- вычисляют такой
, что
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup><mo>=</mo><msubsup><mi>R</mi><mn>2</mn><mo>'</mo></msubsup><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow>
.
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup></mrow>
2
Если
не равен 1, то на этапе /2/-/iii/ квадратный корень f(X) получают в соответствии со следующим выражением:
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><msub><mi>R</mi><mn>0</mn></msub><mo>.</mo><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup></mrow>
,
0
где R удовлетворяет следующему выражению:
<mrow><msub><mi>R</mi><mn>0</mn></msub><mo>=</mo><mi>U</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>.</mo><msup><mrow><mo stretchy="false">(</mo><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
.
Здесь заметим, что целесообразно, что в этом случае осуществляют одно возведение в степень при реализации способа, соответствующего одному варианту осуществления настоящего изобретения.
2
2
2
Фактически остроумно использован тот факт, что в конце концов мы нашли квадратный корень f(X) в случае, когда элемент f(X) соответствует квадрату, без реализации дополнительного возведения в степень. Фактически квадратный корень из f(X) получен следующим образом:
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><msub><mi>R</mi><mn>0</mn></msub><mo>.</mo><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup></mrow>
,
0
где элемент R в конечном счете получен посредством операции умножения, которая менее затратив по сравнению с реализацией возведения в степень. Более того, в этом варианте осуществления изобретения необходимо вычислить только элемент U(t), так как элемент
<mrow><msup><mrow><mo stretchy="false">(</mo><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
получается мгновенно. Следовательно, не нужно предварительно вычислять этот последний элемент и хранить его в памяти. Следовательно, может быть уменьшен нужный объем памяти.
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup></mrow>
1
Далее, если
равен 1, то на этапе /2/-/iii/ квадратный корень f(X) можно получить в соответствии со следующим выражением:
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup><mo>.</mo><mi>f</mi><mrow><mo>(</mo><mrow><msub><mi>X</mi><mn>1</mn></msub></mrow><mo>)</mo></mrow></mrow>
.
Этот также соответствует умножению.
При выполнении таких вычислений в соответствии с одним вариантом осуществления настоящего изобретения, время, затрачиваемое на выполнение операций, отличающихся от возведения в степень, пренебрежимо мало по сравнению со временем выполнения возведения в степень. Далее, благодаря характеристикам настоящего изобретения, вместо четырех возведений в степень, как описано выше в обычном случае, самое большее нужно выполнить два возведения в степень. Такое уменьшение количества возведений в степень очень полезно.
В одном варианте осуществления настоящего изобретения многочлены, удовлетворяющие выражению (4) в соответствии с одним вариантом осуществления настоящего изобретения в Х и Y, выражаются в координатах Якоби через X′, Y′ и Z следующим образом:
2
Х′=Х.Z,
3
Y′=Y.Z,
и операции обращения преобразуются в операции умножения.
Преобразование в координаты Якоби позволяет преобразовать операции обращения в умножение при надлежащем выборе элемента Z.
В одном варианте осуществления настоящего изобретения многочлены выражены в координатах Якоби, в соответствии с чем точка P(X,Y) записывается как P(X′, Y′, Z), где
2
Х′=Х.Z,
3
Y′=Y′Z,
z
при этом функция f записана как f(X′) и удовлетворяет следующему равенству:
Z
3
4
6
а
f(X′)=X′+.X′.Z+b.Z,
а эллиптическая кривая удовлетворяет выражению
2
Z
Y′=f(X′),
<mrow><msubsup><mtext>X</mtext><mtext>1</mtext><mtext>'</mtext></msubsup><mtext>(t)</mtext></mrow>
<mrow><msubsup><mtext>X</mtext><mtext>2</mtext><mtext>'</mtext></msubsup><mtext>(t)</mtext></mrow>
в котором многочлены, выраженные в координатах Якоби, представляют собой
,
, Z(t) и U′(t) и удовлетворяют следующему равенству в координатах Якоби:
<mrow><mi>U</mi><mo>'</mo><msup><mrow><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mn>2</mn></msup><mo>=</mo><mo>−</mo><msub><mi>f</mi><mrow><mi>Z</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></msub><mo stretchy="false">(</mo><msubsup><mi>X</mi><mn>1</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>.</mo><msub><mi>f</mi><mrow><mi>Z</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></msub><mo stretchy="false">(</mo><msubsup><mi>X</mi><mn>2</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow>
,
и где Z(t) определен таким образом, что операции обращения преобразованы в операции умножения.
На этапе /1/ значение параметра t может быть получено как функция пароля или идентификатора. Таким образом, возможно предусмотреть использование в качестве параметра непосредственно пароля или производной от пароля.
В одном варианте осуществления настоящего изобретения криптографическое приложение представляет собой аутентификацию или идентификацию путем проверки целостности и
на этапе /1/ осуществляют следующие этапы:
/а/ генерируют случайное число;
/б/ получают зашифрованное число путем шифрования упомянутого случайного числа на основе функции шифрования с использованием ключа шифрования, определенного из пароля или идентификатора, соответствующего параметру; и
/в/ передают зашифрованное число для проверки целостности.
С помощью этой процедуры, при проверке целостности возможно получить случайное число, являющееся функцией зашифрованного числа, полученного из пароля. Далее осуществляют восстановление значения параметра t путем применения подходящей функции.
Согласно второму аспекту настоящего изобретения предложено электронное устройство, содержащее подходящее средство применения способа выполнения криптографического преобразования в соответствии с первым аспектом настоящего изобретения.
Другие аспекты и достоинства изобретения будут ясны после прочтения описания одного из вариантов осуществления изобретения.
Также изобретение будет лучше понятно из следующих чертежей,
где фиг.1 - вид, показывающий основные этапы способа выполнения криптографического преобразования в соответствии с одним вариантом осуществления настоящего изобретения;
фиг.2 - вид, подробно показывающий способ выполнения криптографического преобразования в соответствии с одним вариантом осуществления настоящего изобретения; и
фиг.3 - вид, подробно показывающий способ выполнения криптографического преобразования в соответствии с одним вариантом осуществления настоящего изобретения.
На фиг.1 показаны основные этапы способа выполнения криптографического преобразования в соответствии с одним вариантом осуществления настоящего изобретения.
Эти основные этапы подходят для определения точки на эллиптической кривой, причем упомянутая точка предназначена для использования в криптографическом приложении. Криптографическое преобразование такого типа может быть выполнено электронным компонентом безопасным образом, то есть без определения этой точки, что не дает никакой информации об определенной точки и, следовательно, о параметре t.
q
Это преобразование содержит в конечном поле F, где характеристика q равна 3 mod 4, этап получения точки P(X, Y) на эллиптической кривой, удовлетворяющей выражению
2
Y=f(X).
1
2
Абсцисса Х точки P(X, Y) соответствует или X(t) или X(t) для полученного значения t, так что
<mrow><mtext>-f(X1(t))</mtext><mtext>.t(X2(t))</mtext><mo>=</mo><msup><mtext>U</mtext><mtext>2</mtext></msup><mtext>(t)</mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> (4)</mtext></mrow>
q
в конечном поле F.
Такие многочлены могут быть функцией двух параметров u и t. В контексте настоящего изобретения одному из параметров целесообразно придать значение и, следовательно, многочлены, удовлетворяющие выражению (4), являются функциями одного параметра t.
1
1
2
2
q
В общем для определения точки на кривой при входных параметрах u и t мы попытаемся определить те числа из чисел X=X(t, u) и Х=X(t, u), которые соответствуют квадрату элемента в конечном поле F. Для этой цели на этапе 11 с учетом параметра t вычисляют
i
i
X=X(t) для i, равного 1 и 2,
и
U=U(t).
1
1
1
1
На этапе 12 мы определяем, является ли элемент f(X) квадратом на основе определенных вычислений. Если элемент f(X) является квадратом, то вычисляют квадратный корень с целью получения на этапе 13 точки P, абсцисса X и ордината Y которой получены из вычисления предыдущего квадратного корня.
2
2
2
В противном случае на этапе 14 получают точку P с абсциссой X и ординатой Y. Для этого мы предусматриваем вычисление квадратного корня элемента f(X).
Заметим, что достижение этапов 13 или 14 с целью получения точки на эллиптической кривой в соответствии с одним вариантом осуществления настоящего изобретения требует аналогичных операций. Таким образом, независимо от входного параметра или параметров t и u, невозможно осуществить атаку на основе затраченного времени.
i
i
Тогда точку P(X, Y) для I, равного 1 или 2, можно целесообразно использовать в следующих криптографических приложениях: при шифровании, или хешировании, или подписывании, или аутентификации, или идентификации, так как определение этой точки не предоставляет никаких элементов, которые могут помочь взломать секретность этой точки.
q
В поле F, в котором q соответствует 3 mod 4, возможно различными путями проверить, является ли элемент квадратом.
На фиг.2 показано применение способа, соответствующего одному варианту осуществления настоящего изобретения.
На этапе 21 мы вычисляем
<mrow><msub><mi>R</mi><mn>1</mn></msub><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>−</mo><mn>1</mn></mrow><mn>2</mn></mfrac></mrow></msup></mrow>
1
q
1
q
1
1
Далее на этапе 22 можно выполнить проверку, является ли элемент f(X) квадратом в F, что делают посредством сравнения Rс 1. Фактически в поле F, если R равен 1, то f(X) является квадратом. В этом случае на этапе 24 следующим образом вычисляют квадратный корень этого элемента:
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
2
В другом случае элемент f(X) является квадратом элемента. В этом случае на этапе 23 вычисляют квадратный корень следующим образом:
<mrow><msqrt><mrow><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow></msqrt><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>2</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
В этом варианте осуществления изобретения заметим, что количество и тип выполняемых операций, предназначенных для определения точки P, одинаковы независимо от варианта обработки, то есть независимо от того, какой элемент соответствует квадрату в выражении (4).
На фиг.3 показан другой вариант осуществления способа выполнения, соответствующего одному варианту осуществления настоящего изобретения, в котором применяется только одно возведение в степень.
Здесь предпочтительно, что количество возведений в степень может быть дополнительно уменьшено путем неиспользования одинакового теста, направленного на проверку того, является ли элемент квадратом 12 с фиг.1.
q
В одном варианте осуществления настоящего изобретения, когда пытаются определить, является ли элемент А квадратом в F, могут выполнить следующие этапы:
<mrow><msub><mi>W</mi><mn>1</mn></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msup><mi>A</mi><mrow><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow></mfrac><mo>=</mo><msup><mi>A</mi><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mi>i</mi><mo stretchy="false">)</mo></mrow>
<mrow><msub><mi>W</mi><mn>2</mn></msub><mo>=</mo><msubsup><mi>W</mi><mn>1</mn><mn>2</mn></msubsup><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mi>i</mi><mi>i</mi></mrow><mo>)</mo></mrow></mrow>
<mrow><msub><mi>W</mi><mn>3</mn></msub><mo>=</mo><msub><mi>W</mi><mn>2</mn></msub><mo>.</mo><mi>A</mi><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mrow><mo>(</mo><mrow><mi>i</mi><mi>i</mi><mi>i</mi></mrow><mo>)</mo></mrow></mrow>
Наконец, если элемент А является квадратом, то
1
q
<mrow><mn>1</mn><mo>/</mo><msqrt><mi>A</mi></msqrt></mrow>
- W соответствует обратному элементу для квадратного корня из А, то есть
, так как возведение в степень (q-1) соответствует нахождению обратного элемента, а возведение в степень (q+1)/4 соответствует квадратному корню в конечном поле F;
2
- W соответствует обратному элементу А; и
3
- W соответствует значению 1.
3
q
3
Таким образом, когда W равен 1, из этого следует, что элемент А является квадратом в конечном поле F. Если А не является квадратом, то W не равен 1.
В следующих разделах описан вариант осуществления изобретения, основанный на этом типе проверки. В одном варианте осуществления настоящего изобретения на этапе 311 осуществляют следующее возведение в степень:
<mrow><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup><mo>=</mo><mi>f</mi><msup><mrow><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
0
Далее, как указано ранее, проверяют, является ли элемент Rквадратом. Таким образом, на этапе 312 мы вычисляем
<mrow><msubsup><mi>R</mi><mn>2</mn><mo>'</mo></msubsup><mo>=</mo><msubsup><mi>R</mi><mn>1</mn><mrow><mo>'</mo><mn>2</mn></mrow></msubsup></mrow>
Далее на этапе 313 мы вычисляем
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup><mo>=</mo><msubsup><mi>R</mi><mn>2</mn><mo>'</mo></msubsup><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup></mrow>
1
Далее на этапе 314 мы определяем, равен ли 1 элемент
. Если это так, то следующий элемент соответствует квадратному корню элемента f(X):
<mrow><msubsup><mi>R</mi><mn>4</mn><mo>'</mo></msubsup><mo>=</mo><msubsup><mi>R</mi><mn>3</mn><mo>'</mo></msubsup><mo>.</mo><mi>f</mi><mo stretchy="false">(</mo><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">)</mo></mrow>
2
q
Если проверка 314 не проходит, то элемент f(X) является квадратным корнем в F. Таким образом, квадратный корень этого элемента получают на этапе 316 в соответствии со следующим выражением:
<mrow><msubsup><mi>R</mi><mn>4</mn><mrow><mo>'</mo><mo>'</mo></mrow></msubsup><mo>=</mo><msub><mi>R</mi><mn>0</mn></msub><mo>.</mo><msubsup><mi>R</mi><mn>1</mn><mo>'</mo></msubsup></mrow>
,
0
где R удовлетворяет следующему выражению:
<mrow><msub><mi>R</mi><mn>0</mn></msub><mo>=</mo><mi>U</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>.</mo><msup><mrow><mo stretchy="false">(</mo><mo>−</mo><mn>1</mn><mo stretchy="false">)</mo></mrow><mrow><mi>q</mi><mo>−</mo><mn>1</mn><mo>−</mo><mfrac><mrow><mi>q</mi><mo>+</mo><mn>1</mn></mrow><mn>4</mn></mfrac></mrow></msup></mrow>
2
Заметим, что приведенное выше выражение дает возможность получать квадратный корень f(X), не выполняя операцию возведения в степень, такую как операция, выполняемая на этапе 23 или также на этапе 311. Фактически здесь осуществляют умножение вместо возведения в степень.
<mrow><msubsup><mi>R</mi><mn>4</mn><mrow><mo>'</mo><mo>'</mo></mrow></msubsup></mrow>
<mrow><msubsup><mi>R</mi><mn>4</mn><mrow><mo>'</mo><mo>'</mo></mrow></msubsup></mrow>
2
2
Далее мы получаем
, который соответствует элементу f(X). Таким образом, была определена точка P на эллиптической кривой, в которой абсциссой является X, а ординатой -
.
1
2
В описанном ранее со ссылкой на фиг.3 варианте осуществления изобретения, аналогично варианту осуществления, описанному со ссылкой на фиг.2, независимо от определения точки P, то есть основано ли это определение на числе X или Х, применяются аналогичные вычисления, таким образом обеспечивается определение точки на эллиптической кривой за постоянное время.
В одном варианте осуществления настоящего изобретения возможно выбрать многочлены, которые удовлетворяют выражению (4) в соответствии с одним вариантом осуществления изобретения, на основе многочленов Уласа, как определено в документе «Рациональные точки на определенных гиперэллиптических кривых над конечными полями» («Rational points on certain hyperelliptic curves over finite fields»), автор Масие Улас (Macie Ulas), 11 июня 2007 года.
В этом документе описаны многочлены, удовлетворяющие равенству (2) Скальба:
<mrow><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">(</mo><mi>t</mi><mo>,</mo><mi>u</mi><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mfrac><mi>b</mi><mi>a</mi></mfrac><mrow><mo>(</mo><mrow><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mrow><msup><mi>t</mi><mn>4</mn></msup><mi>f</mi><mo stretchy="false">(</mo><mi>u</mi><mo stretchy="false">)</mo><mo>+</mo><msup><mi>t</mi><mn>2</mn></msup><mi>f</mi><mo stretchy="false">(</mo><mi>u</mi><mo stretchy="false">)</mo></mrow></mfrac></mrow><mo>)</mo></mrow></mrow>
,
2
1
2
X(t, u)=tf(u)X(t, u),
3
X(t, u)=u,
3
4
1
U(t, u)=tf(u)f(X(t, u)),
3
а
где f(u)=u+u+b,
а
q
и b - такие элементы F, что их произведение не равно нулю.
Таким образом, выражения могут быть переписаны при присваивании
f(u)=-1
без необходимости вычислять значение параметра и для которого выполняется это последнее равенство. Далее мы получаем
<mrow><msub><mi>X</mi><mn>1</mn></msub><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mfrac><mi>b</mi><mi>a</mi></mfrac><mrow><mo>(</mo><mrow><mn>1</mn><mo>+</mo><mfrac><mn>1</mn><mrow><msup><mi>t</mi><mn>4</mn></msup><mo>−</mo><msup><mi>t</mi><mn>2</mn></msup></mrow></mfrac></mrow><mo>)</mo></mrow></mrow>
,
2
1
2
X(t)=-tX(t), и
3
1
U(t)=tf(X(t)).
Эти многочлены удовлетворяют следующему равенству:
1
2
2
-f(X(t)).f(X(t)=U(t)).
В одном варианте осуществления настоящего изобретения предпочтительно предусматривают использование координат Якоби. Это преобразование в координаты Якоби дает возможность преобразовать операции обращения в операции умножения, которые быстрее и легче применять.
Уравнение эллиптической кривой
3
2
a
X+X+b=Y
может быть записано в координатах Якоби следующим образом:
3
4
6
2
a
X′+X′Z+bZ=Y′.
Заметим, что координаты точки (X, Y) могут быть записаны в координатах (X′, Y′, Z′) Якоби следующим образом:
2
Х′=Х.Z
3
Y′=Y.Z.
Следовательно, мы должны определить многочлен Z(t, u) таким образом, чтобы координаты X′, Y′ и Z Якоби могли быть записаны без обращения.
В следующих разделах это преобразование в координаты Якоби применяют в определенном случае многочленов, как указано выше.
В этом контексте любую операцию обращения исключают с учетом следующего выражения:
a
4
2
Z(t)=(t-t).
Фактически многочлены могут быть записаны в следующей форме в координатах Якоби:
<mrow><msubsup><mi>X</mi><mn>1</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><mi>b</mi><mo>.</mo><mi>Z</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><msup><mi>t</mi><mn>4</mn></msup><mo>−</mo><msup><mi>t</mi><mn>2</mn></msup><mo>+</mo><mn>1</mn><mo stretchy="false">)</mo></mrow>
,
<mrow><msubsup><mi>X</mi><mn>2</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo>−</mo><msup><mi>t</mi><mn>2</mn></msup><mo>.</mo><msubsup><mi>X</mi><mn>2</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow>
.
Следовательно, заметим, что не требуется никакого обращения в координатах Якоби. Так как эта операция может быть такой же затратной, как и возведение в степень, эти координаты дают возможность значительно улучшить время вычисления.
Далее для получения координаты Y′ Якоби, желательно вычислить U′(t, u), эквивалент U(t, u) в координатах Якоби.
Далее мы можем записать в координатах Якоби
<mrow><mi>U</mi><mo>'</mo><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><msup><mi>t</mi><mn>3</mn></msup><mo>.</mo><msub><mi>f</mi><mi>Z</mi></msub><mo stretchy="false">(</mo><msubsup><mi>X</mi><mn>2</mn><mo>'</mo></msubsup><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo></mrow>
,
где
<mrow><msub><mi>f</mi><mrow><mi>Z</mi><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow></msub><mo>=</mo><mi>X</mi><msup><mo>'</mo><mn>3</mn></msup><mo>+</mo><mi>a</mi><mo>.</mo><mi>X</mi><mo>'</mo><mo>.</mo><mi>Z</mi><msup><mrow><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mn>4</mn></msup><mo>+</mo><mi>b</mi><mo>.</mo><mi>Z</mi><msup><mrow><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo></mrow><mn>6</mn></msup></mrow>
.
Только для примера выражения ниже позволяют больше не выполнять операции обращения. При таких условиях получаем способ выполнения, который более эффективен и быстр при одновременном обеспечении выполнения за постоянное время.
Целесообразно, что настоящее изобретение может быть реализовано в криптографическом преобразовании любого типа, в котором используют эллиптические кривые. Оно может быть особенно полезно в протоколах аутентификации пароля, таких как «Установка соединения с аутентификацией пароля». В этом случае оно позволяет улучшить эффективность вычисления, не давая возможности проводить атаку, связанную со временем выполнения криптографического преобразования.
Также настоящее изобретение может быть применено для протоколов сохранения конфиденциальности, таких как протоколы, используемые для проверки электронных документов удостоверения личности, таких как электронные паспорта.