[go: up one dir, main page]

RU2294559C1 - Device for generating pseudo-random series of binary numbers with usage of elliptic curves - Google Patents

Device for generating pseudo-random series of binary numbers with usage of elliptic curves Download PDF

Info

Publication number
RU2294559C1
RU2294559C1 RU2005116767/09A RU2005116767A RU2294559C1 RU 2294559 C1 RU2294559 C1 RU 2294559C1 RU 2005116767/09 A RU2005116767/09 A RU 2005116767/09A RU 2005116767 A RU2005116767 A RU 2005116767A RU 2294559 C1 RU2294559 C1 RU 2294559C1
Authority
RU
Russia
Prior art keywords
block
input
output
sequence
elliptic curve
Prior art date
Application number
RU2005116767/09A
Other languages
Russian (ru)
Other versions
RU2005116767A (en
Inventor
Александр Владимирович Аграновский (RU)
Александр Владимирович Аграновский
Юрий Евгеньевич Иванов (RU)
Юрий Евгеньевич Иванов
Александр Юрьевич Гуфан (RU)
Александр Юрьевич Гуфан
Роман Ахмедович Хади (RU)
Роман Ахмедович Хади
Original Assignee
Федеральное государственное научное учреждение Научно-исследовательский институт "СПЕЦВУЗАВТОМАТИКА"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное научное учреждение Научно-исследовательский институт "СПЕЦВУЗАВТОМАТИКА" filed Critical Федеральное государственное научное учреждение Научно-исследовательский институт "СПЕЦВУЗАВТОМАТИКА"
Priority to RU2005116767/09A priority Critical patent/RU2294559C1/en
Publication of RU2005116767A publication Critical patent/RU2005116767A/en
Application granted granted Critical
Publication of RU2294559C1 publication Critical patent/RU2294559C1/en

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: engineering of methods for cryptographic transformation of data, possible use in communication, computer and informational systems for cryptographic encryption of information and computation of numbers close to random.
SUBSTANCE: device contains two memory blocks, current time moment timer, two concatenation blocks, two hash-function computation blocks, operation block, computing block.
EFFECT: increased complexity of encryption analysis and decreased probability of reliable prediction of next values of pseudo-random series bits while increasing operation speed of generator.
1 dwg

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области способов и устройств для криптографического преобразования данных, и может быть использовано в связных, вычислительных и информационных системах для криптографического закрытия двоичной информации и вычисления чисел, близких к случайным, когда необходимо вычисление значений сеансовых ключей и другой информации, к которой предъявляются требования слабой предсказуемости и высокой энтропии значений, при обмене данными правительственными, правоохранительными, оборонными, банковскими и промышленными учреждениями, когда возникает необходимость хранения и передачи конфиденциальной информации, а также организации связи на основе шумоподобных сигналов.The invention relates to the field of telecommunications and computer technology, and more particularly to the field of methods and devices for cryptographic data conversion, and can be used in communication, computing and information systems for cryptographic closing of binary information and calculating close random numbers when it is necessary to calculate session values keys and other information, to which requirements of low predictability and high entropy of values are imposed, when exchanging government data, etc. -enforcement, defense, banking and industrial institutions, when it becomes necessary to store and transmit sensitive information, as well as the organization of communication on the basis of noise-like signals.

Известно устройство для генерации случайных чисел [Tezuka S. Pseudorandom number generator. Патент US №5046036 от 3.09.1991 г., кл. G 06 F 007/38], в котором для вычисления значений псевдослучайных наборов чисел используют совокупность преобразования синхропосылки с помощью генератора так называемых M-последовательностей и трех видов преобразования полученных последовательностей:A device for generating random numbers is known [Tezuka S. Pseudorandom number generator. US patent No. 5046036 from 3.09.1991, cl. G 06 F 007/38], in which to compute the values of pseudo-random sets of numbers using the combination of the sync package using a generator of the so-called M-sequences and three types of conversion of the obtained sequences:

умножения вектора Р со значениями, полученными из генератора М-последовательностей на изначально заданную матрицу G, сложения по модулю 2 двух выходных битов генератора М-последовательностей; битовых подстановок Si результата умножения вектора Р на матрицу G.multiplying the vector P with the values obtained from the M-sequence generator by the initially given matrix G, modulo 2 addition of two output bits of the M-sequence generator; bitwise permutations S i of the result of multiplying the vector P by the matrix G.

Однако устройство имеет недостатки, заключающиеся в невысокой криптостойкости операций генератора (из-за использования генераторов M-последовательностей, которые не обладают достаточной криптостойкостью [Иванов М.А., Чугунков И.В. Теория, применение и оценка качества генераторов псевдослучайных последовательностей. М.: Кудиц-образ, 2003 - 240 с.]), а также необходимости наличия действительно случайного значения синхропосылки, с помощью которой производится вычисление M-последовательностей [Аграновский А.В., Хади Р.А. Практическая криптография: алгоритмы и их программирование. М.: Солон-Пресс, 2002 - 256 с.], что существенно для использования данного устройства на практике.However, the device has drawbacks in the low cryptographic stability of generator operations (due to the use of generators of M-sequences that do not have sufficient cryptographic stability [Ivanov MA, Chugunkov IV Theory, application and quality assessment of pseudo-random sequence generators. M. : Kudits-image, 2003 - 240 pp.]), As well as the need for a truly random value of the clock package, with the help of which the calculation of M-sequences is performed [Agranovsky A.V., Khadi R.A. Practical cryptography: algorithms and their programming. M .: Solon-Press, 2002 - 256 S.], which is essential for the use of this device in practice.

Известно также другое устройство для генерации псевдослучайной последовательности бит [Mark, J.G., Tazartes D.A., Tazartes D.I., Wiener D.P. Fiber-optic gyro utilizing pseudorandom-bit-sequence light modulation. Патент US №6130755 от 10.10.2000 г., кл. G 01 C 019/72], работа которого основана на выборе 0 или 1 в качестве следующего бита псевдослучайной последовательности в зависимости от результатов проверки предыдущих битов последовательности на соответствие изначально заданным критериям. Принцип работы устройства основан на двух типах критериев - если удовлетворяется одна группа критериев (так называемые "0-критерии"), выбирается нулевое значение следующего выходного бита последовательности, если же удовлетворяется вторая группа критериев (так называемые "1-критерии"), то в качестве выходного бита выбирается единица. Сущность критериев заключается в измерении свойств цепочки предыдущих выходных битов достаточной длины. В качестве следующего бита вычисляемой псевдослучайной последовательности выбирается очередной бит, полученный другим более произвольным методом (например, сложением последних j (j=1, 2, 3...) бит по модулю 2).Another device for generating a pseudo-random sequence of bits is also known [Mark, J.G., Tazartes D.A., Tazartes D.I., Wiener D.P. Fiber-optic gyro utilizing pseudorandom-bit-sequence light modulation. US patent No. 6130755 from 10.10.2000, class. G 01 C 019/72], the operation of which is based on the choice of 0 or 1 as the next bit of the pseudo-random sequence, depending on the results of checking the previous bits of the sequence for compliance with the initially specified criteria. The principle of operation of the device is based on two types of criteria: if one group of criteria is satisfied (the so-called "0-criteria"), the zero value of the next output bit of the sequence is selected, if the second group of criteria (the so-called "1-criteria") is satisfied, then as the output bit, one is selected. The essence of the criteria is to measure the properties of a chain of previous output bits of sufficient length. The next bit obtained by another more arbitrary method (for example, by adding the last j (j = 1, 2, 3 ...) bits modulo 2) is selected as the next bit of the calculated pseudo-random sequence.

Однако данное устройство обладает недостатками, которые связаны с возможностью криптоанализа выходных последовательностей из-за высокой предсказуемости следующего вычисляемого бита в случае, когда 0-критерии и 1-критерии известны криптоаналитику, а также низкой скоростью производимых операций, поскольку на каждой итерации анализируется большое количество информации об уже вычисленной выходной последовательности и вычисляется только один бит информации.However, this device has disadvantages associated with the possibility of cryptanalysis of the output sequences due to the high predictability of the next calculated bit in the case when the 0-criteria and 1-criteria are known to the cryptanalyst, as well as the low speed of the operations performed, since a large amount of information is analyzed at each iteration about the already calculated output sequence and only one bit of information is calculated.

Наиболее близким по технической сущности к предлагаемому является устройство для генерации псевдослучайных последовательностей [DeBellis R.S., Smith R.M., Yeh P.C. Pseudorandom number generator with backup and restoration capability. Патент US №6104810 от 15.08.2000 г., кл. G 01 C 019/72], принятое за прототип. Принцип действия устройства основан на том, что для вычисления значений псевдослучайного набора двоичных чисел используется вычислительное преобразование входных неслучайных данных для получения выходной псевдослучайной двоичной последовательности. В прототипе значения псевдослучайной последовательности вычисляют при помощи применения заведомо криптостойкой функции к значению, зависящему от текущего времени, и секретному параметру, затем полученные биты подают на вход хэш-функции MDC-4 [Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. СПб: Триумф, 2002 г. - 816 с.], а ее результат сохраняется как значение псевдослучайной последовательности. Значение секретного параметра регулярно обновляется при помощи вычисления хэш-функции от совокупности текущего значения секретного параметра и текущего значения времени. Алгоритм работы устройства также предусматривает сохранение резервных значений секретного параметра, используемых в случае перезапуска системы. Таким образом уменьшается вероятность повторного вычисления уже использованной последовательности псевдослучайных чисел после перезапуска устройства.The closest in technical essence to the proposed is a device for generating pseudo-random sequences [DeBellis R.S., Smith R.M., Yeh P.C. Pseudorandom number generator with backup and restoration capability. US patent No. 6104810 from 08/15/2000, class. G 01 C 019/72], taken as a prototype. The principle of operation of the device is based on the fact that to calculate the values of a pseudo-random set of binary numbers, a computational transformation of the input nonrandom data is used to obtain the output pseudo-random binary sequence. In the prototype, the values of the pseudo-random sequence are calculated by applying a known cryptographic function to a value that depends on the current time and a secret parameter, then the received bits are fed to the MDC-4 hash function [Schneier B. Applied cryptography. Protocols, algorithms, source codes in the C language. SPb: Triumph, 2002 - 816 pp.], And its result is stored as a pseudo-random sequence value. The value of the secret parameter is regularly updated by calculating a hash function from the combination of the current value of the secret parameter and the current time value. The algorithm of the device also provides for the storage of reserve values of the secret parameter used in the event of a restart of the system. Thus, the likelihood of recalculating an already used sequence of pseudo-random numbers after restarting the device is reduced.

Недостатками прототипа являются низкая скорость работы, вызванная необходимостью многократного применения хэш-функции MDC-4, а также наличие дополнительных требований к высокой энтропии и длинам битовых блоков информации о текущем времени и текущем секретном параметре, используемых при генерации значений псевдослучайной последовательности.The disadvantages of the prototype are the low speed caused by the need to repeatedly use the MDC-4 hash function, as well as the additional requirements for high entropy and lengths of bit blocks of information about the current time and the current secret parameter used to generate pseudo-random sequence values.

Техническим результатом, получаемым от внедрения данного изобретения, является устранение указанных недостатков, то есть повышение сложности криптоанализа получаемых псевдослучайных последовательностей, уменьшение вероятности уверенного прогнозирования следующих значений двоичных чисел выходной последовательности.The technical result obtained from the implementation of this invention is the elimination of these disadvantages, that is, increasing the complexity of cryptanalysis of the resulting pseudorandom sequences, reducing the likelihood of confident prediction of the following binary numbers of the output sequence.

Данный технический результат достигается благодаря тому, что устройство для генерации псевдослучайной последовательности двоичных чисел с использованием эллиптических кривых состоит из блока 1 - блока памяти для хранения параметров используемой эллиптической кривой и текущего значения секретного параметра Sy (блок 1 имеет один вход для обновления секретного параметра Sy и четыре выхода: выход 1 - для считывания параметра Sy, выход 2 - для считывания параметров эллиптической кривой, выходы 3 и 4 - для считывания координат примитивного элемента В группы точек эллиптической кривой), блока 2 (блока таймера, который имеет один выход, с которого считывает текущее значение таймера в виде последовательности бит), операционных блоков 3.1 и 3.2, вычисляющих значения хэш-функции MD5 (блоки имеют по одному входу, на которые подается последовательность бит, и одному выходу, с которого считывается значение хэш-функции MD5 от поданной на блок входной информации в виде последовательности бит), операционного блока 4, преобразующего последовательность бит в пару последовательностей бит, представляющих собой координаты точки эллиптической кривой (блок имеет два входа: вход 1, на который подается последовательность бит, и вход 2, на который подается значение параметров эллиптической кривой в виде последовательности бит, а также два выхода, с которых считываются координаты получаемой точки эллпитической кривой в виде последовательностей бит), вычислительного блока 5, производящего перемножение двух точек эллиптической кривой, координаты которых поступают на вход в виде последовательностей бит (блок 5 имеет входы 1, 2, 3 и 4, на которые подаются координаты операндов умножения в виде последовательностей бит - по одному входу на координату каждого операнда, а также вход 5, на который подаются параметры эллиптической кривой в виде последовательности бит, и выход 1, из которого считывается последовательность бит, представляющая собой y-координату результата перемножения), операционных блоков 6.1 и 6.2, производящих конкатенацию поступающих на вход блоков двух последовательностей бит (каждый из блоков имеет по два входа 1 и 2 для входных последовательностей бит и по одному выходу, с которого считывается результат конкатенации входных последовательностей), блока памяти 7, накапливающего выходную псевдослучайную последовательность бит (блок имеет один вход для принятия накапливаемой двоичной информации и один выход для ее считывания), при этом выход 1 блока 1 соединен с входом 2 блока 6.1; выход 2 блока 1 соединен с входом 2 блока 4 и входом 5 блока 5; выход 3 блока 1 соединен с входом 3 блока 5; выход 4 блока 1 соединен с входом 4 блока 5; выход 1 блока 2 соединен с входом 1 блока 6.1 и входом 2 блока 6.2; выход 1 блока 3.1 соединен с входом 1 блока 4; выход 1 блока 3.2 соединен с входом 1 блока 7; выход 1 блока 4 соединен с входом 1 блока 5; выход 2 блока 4 соединен с входом 2 блока 5; выход 1 блока 5 соединен с входом 1 блока 6.2; выход 1 блока 6.1 соединен с входом 1 блока 3.1; выход 1 блока 6.2 соединен с входом 1 блока 3.2.This technical result is achieved due to the fact that the device for generating a pseudo-random sequence of binary numbers using elliptic curves consists of block 1 - a memory block for storing the parameters of the elliptic curve used and the current value of the secret parameter S y (block 1 has one input for updating the secret parameter S y and four outputs: output 1 - to read the parameter S y, output 2 - for reading the parameters of the elliptic curve, the outputs 3 and 4 - to read the coordinate of primitive elements in the group of points of an elliptic curve), block 2 (a timer block, which has one output from which it reads the current timer value as a sequence of bits), operating blocks 3.1 and 3.2, which calculate the values of the MD5 hash function (blocks have one input, to which a sequence of bits is supplied, and to one output from which the value of the MD5 hash function is read from the input information in the form of a sequence of bits), an operation unit 4 that converts a sequence of bits into a pair of bit sequences, represents they are the coordinates of the point of the elliptic curve (the block has two inputs: input 1, to which the sequence of bits is fed, and input 2, to which the value of the parameters of the elliptic curve is supplied as a sequence of bits, as well as two outputs from which the coordinates of the obtained point of the elliptic curve are read in the form of sequences of bits), computing unit 5, which multiplies two points of the elliptic curve, the coordinates of which are input in the form of sequences of bits (block 5 has inputs 1, 2, 3 and 4, to which the coordinates of the multiplication operands are presented in the form of sequences of bits — one input per coordinate of each operand, as well as input 5, to which the parameters of the elliptic curve are supplied as a sequence of bits, and output 1, from which the sequence of bits is read, which is the y-coordinate of the result of multiplication ), operating blocks 6.1 and 6.2, which concatenate two blocks of bit sequences received at the input of blocks (each block has two inputs 1 and 2 for input bit sequences and one output, with torogo read result of the concatenation of the input sequences), the memory unit 7, accumulator output pseudorandom bit sequence (block has one input for taking accumulated binary information and one output for its reader), with the output of one unit 1 is connected to input unit 2 6.1; the output 2 of block 1 is connected to the input 2 of block 4 and the input 5 of block 5; the output 3 of block 1 is connected to the input 3 of block 5; the output 4 of block 1 is connected to the input 4 of block 5; the output 1 of block 2 is connected to the input 1 of block 6.1 and the input 2 of block 6.2; the output 1 of block 3.1 is connected to the input 1 of block 4; the output 1 of block 3.2 is connected to the input 1 of block 7; the output 1 of block 4 is connected to the input 1 of block 5; the output 2 of block 4 is connected to the input 2 of block 5; the output 1 of block 5 is connected to the input 1 of block 6.2; output 1 of block 6.1 is connected to input 1 of block 3.1; output 1 of block 6.2 is connected to input 1 of block 3.2.

Принцип действия устройства основан на вычислениях в мультипликативной группе точек эллиптической кривой вида Е(Х)={(х,y)|y23+а*x+b} над полем GF(p,n). Устройство работает следующим образом. В блок 1 загружаются данные инициализации (параметры р и n, а и b, примитивный элемент В группы точек кривой Е, секретный параметр Sy). Дальнейшая работа проходит следующим образом. Блок 6.1, входы которого соединены с выходом блока 2 и выходом 1 блока 1, производит конкатенацию битовой последовательности, полученной на выходе таймера 2 и битовой последовательности, представляющей текущее значение Sy. Блок 3.1, вход 1 которого соединен с выходом 1 блока 6.1, производит вычисление значения хэш-функции от полученного при работе блока 6.1 последовательности бит. Блок 4, вход 1 которого соединен с выходом 1 блока 3.1, а вход 2 - с выходом 2 блока 1, производит преобразование выходных данных блока 3.1 в координаты точки эллиптической кривой Е над полем GF(p,n), считывая информацию о Е, р, n из блока 1. Блок 5 (его входы 1 и 2 соединены с выходами 1 и 2 блока 4, входы 3, 4, 5 - с выходами 3, 4, 2 блока 1 соответственно) вычисляет произведение точки эллиптической кривой Е, полученной на предыдущем шаге и примитивного элемента группы точек Е (информация об а, b, р, n и координатах точки В считывается из блока 1 через его выходы 2, 3, 4), и выдает на выходе значение y-координаты полученной точки. Результат записывается в соответствующие ячейки блока 1 (его вход 1 соединен с выходом). Блок 6.2 производит конкатенацию значения, полученного в блоке 5, и выходного значения блока 2. Блок 3.2 вычисляет значение хэш-функции от результата работы блока 6.2. Полученное значение передается в накопитель 7.The principle of operation of the device is based on calculations in the multiplicative group of points of an elliptic curve of the form E (X) = {(x, y) | y 2 = x 3 + a * x + b} over the field GF (p, n). The device operates as follows. Initialization data is loaded into block 1 (parameters p and n, a and b, primitive element B of the point group of curve E, secret parameter S y ). Further work is as follows. Block 6.1, the inputs of which are connected to the output of block 2 and the output 1 of block 1, concatenates the bit sequence received at the output of timer 2 and the bit sequence representing the current value of S y . Block 3.1, the input 1 of which is connected to the output 1 of block 6.1, calculates the value of the hash function of the sequence of bits obtained during the operation of block 6.1. Block 4, the input 1 of which is connected to the output 1 of block 3.1, and the input 2 to the output 2 of block 1, converts the output of block 3.1 to the coordinates of the point of the elliptic curve E over the field GF (p, n), reading information about E, p , n from block 1. Block 5 (its inputs 1 and 2 are connected to the outputs 1 and 2 of block 4, the inputs 3, 4, 5 to the outputs 3, 4, 2 of block 1, respectively) calculates the product of the point of the elliptic curve E obtained by the previous step and the primitive element of the group of points E (information about a, b, p, n and the coordinates of point B is read from block 1 through its outputs 2, 3, 4), and It yields the y-coordinate of the resulting point. The result is recorded in the corresponding cells of block 1 (its input 1 is connected to the output). Block 6.2 concatenates the value obtained in block 5 and the output value of block 2. Block 3.2 calculates the value of the hash function from the result of the operation of block 6.2. The resulting value is transferred to drive 7.

Таким образом, работа предлагаемого устройства для генерации псевдослучайной последовательности бит с использованием эллиптических кривых состоит из двух этапов. На первом этапе работы устройства производится инициализация необходимой для работы информации. Затем начинается второй этап, в ходе которого производятся вычисления с эллиптической кривой и формируется выходная двоичная последовательность. В случае, если длина выходной последовательности меньше требуемой, этап вычислений с эллиптической кривой повторяется, а результат дописывается в выходную последовательность столько раз, сколько потребуется для достижения необходимой длины выходной последовательности.Thus, the operation of the proposed device for generating a pseudo-random sequence of bits using elliptic curves consists of two stages. At the first stage of operation of the device, the information necessary for operation is initialized. Then the second stage begins, during which calculations are performed with an elliptic curve and the output binary sequence is formed. If the length of the output sequence is less than required, the calculation step with an elliptic curve is repeated, and the result is added to the output sequence as many times as needed to achieve the required length of the output sequence.

Для описания работы устройства введем следующие обозначения:To describe the operation of the device, we introduce the following notation:

- параметры p и n, позволяющие описать поле Галуа GF(p,n);- parameters p and n, allowing to describe the Galois field GF (p, n);

- параметры а и b эллиптической кривой Е, представимой уравнением- parameters a and b of the elliptic curve E represented by the equation

E(X)={(x,y)|y2=x3+a*x+b}, где Х - точка кривой Е, а и b - переменные, х и y являются координатами X;E (X) = {(x, y) | y 2 = x 3 + a * x + b}, where X is the point of the curve E, and b are the variables, x and y are the coordinates of X;

- примитивный элемент В мультипликативной группы точек кривой Е;- a primitive element In the multiplicative group of points of the curve E;

- секретный параметр Sy, являющийся y-координатой точки эллиптической кривой Е;- secret parameter S y , which is the y-coordinate of the point of the elliptic curve E;

- целочисленная переменная Т;- integer variable T;

- выходная двоичная последовательность Q переменной длины.- output binary sequence Q of variable length.

Для генерации псевдослучайной последовательности двоичных чисел используется вычислительное преобразование неслучайных данных для получения выходной псевдослучайной двоичной последовательности. В качестве вычислительного преобразования используют алгоритм вычисления с эллиптической кривой вида Е(Х)={(x,y)|y2=x3+a*x+b}, в котором пользователем задается значение секретного параметра Sy равным y-координате точки В в случае первого преобразования данных либо происходит загрузка сохраненного ранее значения Sy, производится очистка двоичной последовательности Q для хранения выходной последовательности значений; целочисленной переменной Т присваивается значение текущего времени в виде количества секунд, прошедших с 1970 года до текущего момента времени, секретному параметру Sy присваиваются значения y-координаты точки В*e(h(Sy|T)), где е(х) - функция, преобразующая число в точку эллиптической кривой Е, функция h(х) представляет собой хэш-функцию MD5, Sy - текущее значение секретного параметра - сохраняется для последующего использования, к двоичной последовательности Q дописывают значение h(T|Sy), при необходимости действия по вычислению нового значения параметра Sy и дополнению последовательности Q повторяются, выходной последовательностью считается двоичная последовательность Q.To generate a pseudo-random sequence of binary numbers, a non-random data computational transformation is used to obtain an output pseudo-random binary sequence. As a computational transformation, we use an algorithm of calculation with an elliptic curve of the form E (X) = {(x, y) | y 2 = x 3 + a * x + b}, in which the user sets the value of the secret parameter S y equal to the y-coordinate of the point In the case of the first data conversion, either the previously stored value S y is loaded, the binary sequence Q is cleared to store the output sequence of values; the integer variable T is assigned the value of the current time in the form of the number of seconds elapsed from 1970 to the current time, the secret parameter S y is assigned the y-coordinate of the point B * e (h (S y | T)), where e (x) - the function that converts the number to a point of the elliptic curve E, the function h (x) is a MD5 hash function, S y - the current value of the secret parameter - is stored for later use, the value h (T | S y ) is added to the binary sequence Q, when the need to take action to calculate the new steam value meter S y and complement the sequence Q are repeated, the output sequence is the binary sequence Q.

Для реализации работы используют входные данные о поле Галуа GF(p,n), параметрах эллиптической кривой Е, имеющей над полем GF(p,n) не менее 30*2128 точек, и примитивном элементе В мультипликативной группы точек эллиптической кривой Е.To implement the work, use the input data about the Galois field GF (p, n), the parameters of the elliptic curve E, which has at least 30 * 2 128 points over the field GF (p, n), and the primitive element В of the multiplicative group of points of the elliptic curve E.

Функция h(x) согласно [Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. СПб: Триумф, 2002 г. - 816 с.] принимает на вход двоичную последовательность произвольной длины и вычисляет хэш-значение, представленное в виде двоичной последовательности фиксированной длины, равной 128 битам.Function h (x) according to [Schneier B. Applied cryptography. Protocols, algorithms, source codes in the C language. SPb: Triumph, 2002 - 816 pp.] Accepts a binary sequence of arbitrary length as input and calculates a hash value represented as a binary sequence of a fixed length of 128 bits.

Функция е(x) преобразует двоичную последовательность x длиной 128 бит в точку на эллиптической кривой Е. Значение е(x) вычисляется по следующему алгоритму. Выбирается целое число 1≤j≤30. Между числами вида 30*x+j из интервала [0, (2128-1)*30] и частью множества элементов поля GF(p,n) устанавливают взаимнооднозначное соответствие (известный из уровня техники метод установления такого соответствия состоит в трактовке цифр р-ичной записи числа Х в качестве коэффициентов многочлена

Figure 00000002
над соответствующим полем - см., например [Коблиц И. Курс теории чисел и криптографии. М.: Научное издательство ТВП, 2001 - 254 с.]). Затем вычисляют значение
Figure 00000003
, из полученного V извлекают квадратный корень; если корень удалось извлечь, принимают за результат точку с координатами (
Figure 00000004
, sqrt(V)), иначе присваивают переменной j другое целое значение из интервала [1, 30] и повторяют вычисления до тех пор, пока число V не станет полным квадратом. Вероятность того, что применение этого алгоритма не даст результата, составляет приблизительно 2-30.The function e (x) converts the binary sequence x of 128 bits in length to a point on the elliptic curve E. The value of e (x) is calculated by the following algorithm. The integer 1≤j≤30 is selected. Between numbers of the form 30 * x + j from the interval [0, (2 128 -1) * 30] and part of the set of elements of the field GF (p, n), a one-to-one correspondence is established (the method for establishing such a correspondence known from the prior art consists in interpreting the digits p -ary notation of the number X as coefficients of the polynomial
Figure 00000002
above the corresponding field - see, for example, [Koblitz I. Course in number theory and cryptography. M.: Scientific Publishing House of TVP, 2001 - 254 p.]). Then calculate the value
Figure 00000003
, from the obtained V, the square root is extracted; if the root can be extracted, take for the result a point with coordinates (
Figure 00000004
, sqrt (V)), otherwise they assign the variable j another integer value from the interval [1, 30] and repeat the calculation until the number V becomes a full square. The likelihood that applying this algorithm will not produce a result is approximately 2-30 .

Изобретение поясняется чертежом, на котором представлена блок-схема предлагаемого вычислительного устройства.The invention is illustrated in the drawing, which shows a block diagram of the proposed computing device.

Claims (1)

Устройство для генерации псевдослучайной последовательности двоичных чисел с использованием эллиптических кривых, содержащее первый блок памяти, имеющий ячейки для хранения параметров используемой эллиптической кривой и ячейку для записи и хранения текущего значения секретного параметра Sy, таймер, с которого считывается текущее значение времени в виде последовательности двоичных бит, два блока вычисления хэш-функции, операционный блок для преобразования последовательности двоичных бит в пару последовательностей двоичных бит, представляющих собой координаты точки эллиптической кривой, вычислительный блок, производящий перемножение значений координат точек эллиптической кривой, два блока конкатенации, производящих конкатенацию поступающих на их входы последовательностей двоичных бит, второй блок памяти, предназначенный для накапливания выходной псевдослучайной последовательности двоичных чисел, при этом первый информационный выход первого блока памяти, с которого считывается значение текущего секретного параметра Sy, соединен со вторым входом первого блока конкатенации, с первым входом которого соединен выход таймера и второй вход второго блока конкатенации, выход первого блока конкатенации соединен с входом первого блока вычисления хэш-функции, выход которого соединен с первым входом операционного блока, на второй вход которого со второго информационного выхода первого блока памяти поступают параметры эллиптической кривой, первый и второй выходы операционного блока, на которых формируются значения координат точки эллиптической кривой, соединены с первым и вторым информационными входами вычислительного блока, третий и четвертый информационные входы которого соединены с третьим и четвертым информационными выходами первого блока памяти, с которых считываются координаты примитивного элемента В группы точек эллиптической кривой, пятый информационный вход вычислительного блока соединен со вторым информационным выходом первого блока памяти, выход вычислительного блока, на котором формируется последовательность двоичных бит, представляющая собой y-координату результата перемножения и являющаяся текущим значением секретного параметра Sy, соединен с первым входом второго блока конкатенации и входом ячейки первого блока памяти, в которой хранится значение текущего секретного параметра Sy, выход второго блока конкатенации соединен с входом второго блока вычисления хэш-функции, выход которого соединен с входом второго блока памяти, при этом в качестве хэш-функции используется хэш-функция MD5.A device for generating a pseudo-random sequence of binary numbers using elliptic curves, comprising a first memory block having cells for storing the parameters of the used elliptic curve and a cell for recording and storing the current value of the secret parameter S y , a timer from which the current time value is read in the form of a sequence of binary bit, two hash function calculation blocks, an operation block for converting a sequence of binary bits into a pair of sequences of binary bits, pre representing the coordinates of the points of the elliptic curve, a computing unit that multiplies the coordinates of the points of the elliptic curve, two concatenation blocks that concatenate the sequences of binary bits received at their inputs, a second memory block designed to accumulate the output pseudorandom sequence of binary numbers, while the first information output the first memory block, from which the value of the current secret parameter S y is read, is connected to the second input of the first block concatenation, with the first input of which the timer output and the second input of the second concatenation block are connected, the output of the first concatenation block is connected to the input of the first hash function calculation block, the output of which is connected to the first input of the operation block, the second input of which is from the second information output of the first block the memory receives the parameters of the elliptic curve, the first and second outputs of the operating unit, on which the coordinates of the point of the elliptic curve are formed, are connected to the first and second information inputs the data of the computing unit, the third and fourth information inputs of which are connected to the third and fourth information outputs of the first memory unit, from which the coordinates of the primitive element B of the group of points of the elliptic curve are read, the fifth information input of the computing unit is connected to the second information output of the first memory unit, the output of the computing unit on which a sequence of binary bits is formed, which is the y-coordinate of the result of the multiplication and is the current value secret parameter S y , connected to the first input of the second concatenation block and the cell input of the first memory block, which stores the value of the current secret parameter S y , the output of the second concatenation block is connected to the input of the second hash function calculation block, the output of which is connected to the input of the second block memory, while the MD5 hash function is used as a hash function.
RU2005116767/09A 2005-06-02 2005-06-02 Device for generating pseudo-random series of binary numbers with usage of elliptic curves RU2294559C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2005116767/09A RU2294559C1 (en) 2005-06-02 2005-06-02 Device for generating pseudo-random series of binary numbers with usage of elliptic curves

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2005116767/09A RU2294559C1 (en) 2005-06-02 2005-06-02 Device for generating pseudo-random series of binary numbers with usage of elliptic curves

Publications (2)

Publication Number Publication Date
RU2005116767A RU2005116767A (en) 2006-11-20
RU2294559C1 true RU2294559C1 (en) 2007-02-27

Family

ID=37502106

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2005116767/09A RU2294559C1 (en) 2005-06-02 2005-06-02 Device for generating pseudo-random series of binary numbers with usage of elliptic curves

Country Status (1)

Country Link
RU (1) RU2294559C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2533693C2 (en) * 2009-01-14 2014-11-20 Морфо Encoding points on elliptic curve
RU2574826C2 (en) * 2009-06-16 2016-02-10 Морфо Cryptography on simplified elliptical curve

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1528770A1 (en) * 1987-09-18 1989-12-15 Вологодский Политехнический Институт Pseudorandom sequence generator
US5046036A (en) * 1984-10-15 1991-09-03 International Business Machines Corporation Pseudorandom number generator
US6104810A (en) * 1997-05-15 2000-08-15 International Business Machines Corporation Pseudorandom number generator with backup and restoration capability
RU2223593C1 (en) * 2002-05-31 2004-02-10 Федеральное Государственное унитарное предприятие Воронежский научно-исследовательский институт связи Pseudorandom sequence generator
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046036A (en) * 1984-10-15 1991-09-03 International Business Machines Corporation Pseudorandom number generator
SU1528770A1 (en) * 1987-09-18 1989-12-15 Вологодский Политехнический Институт Pseudorandom sequence generator
US6782100B1 (en) * 1997-01-29 2004-08-24 Certicom Corp. Accelerated finite field operations on an elliptic curve
US6104810A (en) * 1997-05-15 2000-08-15 International Business Machines Corporation Pseudorandom number generator with backup and restoration capability
RU2223593C1 (en) * 2002-05-31 2004-02-10 Федеральное Государственное унитарное предприятие Воронежский научно-исследовательский институт связи Pseudorandom sequence generator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2533693C2 (en) * 2009-01-14 2014-11-20 Морфо Encoding points on elliptic curve
RU2574826C2 (en) * 2009-06-16 2016-02-10 Морфо Cryptography on simplified elliptical curve

Also Published As

Publication number Publication date
RU2005116767A (en) 2006-11-20

Similar Documents

Publication Publication Date Title
US5751811A (en) 32N +D bit key encryption-decryption system using chaos
Lu et al. Faster correlation attack on Bluetooth keystream generator E0
KR101389483B1 (en) Method and device for generating a pseudorandom string
JP3821631B2 (en) Method and apparatus for scalar multiplication in elliptic curve cryptography, and storage medium
CN106941407B (en) Method and device for dynamically encrypting platform data
CN101911009B (en) Countermeasure method and apparatus for asymmetric encryption with signature scheme
CN101194457B (en) Randomized modular polynomial reduction method and hardware therefor
WO2003104969A3 (en) Computations in a mathematical system
Bansal et al. Comparison of ECC and RSA algorithm with DNA encoding for IoT security
CA2640992A1 (en) Digital signatures on a smartcard
KR19990077585A (en) A method for generating psuedo-random numbers
Cho et al. Algebraic attacks on SOBER-t32 and SOBER-t16 without stuttering
KR102154164B1 (en) Method for generating a pseudorandom sequence, and method for coding or decoding a data stream
US20110274271A1 (en) Countermeasure method and devices for asymmetric encryption
KR20140046568A (en) Method for elliptic curve cryptography with countermeasures against simple power analysis and fault injection analysis and system thereof
CN118316601B (en) Blockchain key generation methods, devices, equipment, media and products
RU2294559C1 (en) Device for generating pseudo-random series of binary numbers with usage of elliptic curves
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
KR102019369B1 (en) Elliptic curve cryptography apparatus and method for blocking single trace attack
RU2291578C1 (en) Method for stream encryption of data
RU2251816C2 (en) Method for stream-wise encoding of discontinuous information
RU2296427C1 (en) Method for stream encoding of discontinuous information
KR100564764B1 (en) Finite Field Polynomial Multiplication Apparatus and Method
Homsi et al. Lattice-based RLWE key generation using ECC
Camion et al. Two alerts for design of certain stream ciphers: Trapped LFSR and weak resilient function over GF (q)

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160603