патент
№ RU 2598781
МПК H04L9/06

СПОСОБ ЛИНЕЙНОГО ПРЕОБРАЗОВАНИЯ (ВАРИАНТЫ)

Авторы:
Борисенко Николай Павлович
Номер заявки
2015131963/08
Дата подачи заявки
31.07.2015
Опубликовано
27.09.2016
Страна
RU
Как управлять
интеллектуальной собственностью
Реферат

Группа изобретений относится к области вычислительной техники и может быть использована в устройствах защиты данных. Техническим результатом является уменьшение объема памяти при заданной разрядности процессоров. Способ содержит этапы, на которых задают разрядность W процессора вычислительной системы, равную целочисленной степени числа 2, задают доступный объем памяти вычислительной системы М бит, задают размер s сообщения S, причем s кратно W, задают значение разрядности n регистра сдвига с линейной обратной связью (РСЛОС) по схеме Галуа, формируют РСЛОС по схеме Галуа, модифицируют РСЛОС, осуществляют R тактов работы модифицированного РСЛОС, вычисляют выходное состояние ячеек модифицированного РСЛОС, получают после R тактов работы РСЛОС линейное преобразование блоков s сообщения S, считывают из ячеек модифицированного РСЛОС блоки s линейно преобразованного сообщения S, объединяют блоки и получают линейно преобразованное сообщение S. 2 н.п. ф-лы, 14 ил., 3 табл.

Формула изобретения

1. Способ линейного преобразования сообщения S, представленного в двоичном виде, заключающийся в том, что
- задают разрядность W процессора вычислительной системы (размер машинного слова), равную целочисленной степени числа 2;
- задают доступный объем памяти вычислительной системы М бит;
- задают размер s сообщения S, причем s кратно W;
- задают значение разрядности n регистра сдвига с линейной обратной связью (РСЛОС) по схеме Галуа, причем выполняется соотношение
,
где ;
- формируют РСЛОС по схеме Галуа со следующими параметрами:
внутренний примитивный полином

внешний полином
,
где - количество ячеек РСЛОС,
причем ,
исходное состояние ячеек РСЛОС qi образует вектор
,
причем ,
выходное состояние ячеек РСЛОС за один такт работы образует вектор
,
причем , ,
где ,
;
- определяют все делители числа m в виде значений p0, р1, …, pd, причем p0<p1<…pd;
- выбирают максимально возможный делитель р из соотношения
;
- модифицируют РСЛОС, выполняя следующие действия:
- вычисляют R матриц Нr, причем r=(R-1), …, 0, размерностью n×k строк, каждая из которых имеет длину n×k бит, выполняя следующие действия:
- вычисляют
k=р;
- вычисляют
;
где R - количество матриц Н;
- вычисляют
j=m-k;
- вычисляют
t=0;
- (А1) если не выполняется соотношение
j≤m-1,
то переходят к выполнению этапа A3;
- вычисляют
l=0;
- (А2) если не выполняется соотношение
l<n,
то вычисляют
j=j+1,
t=t+1,
переходят к выполнению этапа А1;
- устанавливают исходное состояние РСЛОС
X=(qm-1, …, q1, q0),
, ,
где ;
- вычисляют после k тактов работы для каждого исходного состояния новое состояние РСЛОС
,
где q׳i ϵ GF (2n), 0 ≤ i m-1;
- вычисляют t-e значения для всех матриц Hi, i=r-1…0 путем конкатенации k значений ячеек q′
,
причем ;
- вычисляют
l=l+1,
переходят к выполнению этапа А2;
- (A3) записывают в ячейки модифицированного РСЛОС блоки исходного сообщения S, причем исходное состояние ячеек модифицированного РСЛОС qi образует вектор
,
где Qr = qkr+k-1‖…‖qkr,
причем ,
- осуществляют R тактов работы модифицированного РСЛОС, выполняя на каждом такте следующие действия:
- вычисляют выходное состояние ячеек модифицированного РСЛОС
за один такт работы, образующие вектор
,
каждое значение которого вычисляется по формуле

для каждого ,
причем
,
где ,
где - значение j-го бита вектора ,
причем ,
,
;
- получают после R тактов работы РСЛОС линейное преобразование блоков s сообщения S;
- считывают из ячеек модифицированного РСЛОС блоки s линейно преобразованного сообщения S;
- объединяют блоки и получают линейно преобразованное сообщение S.

2. Способ линейного преобразования сообщения S, представленного в двоичном виде, заключающийся в том, что
- задают разрядность W процессора вычислительной системы (размер машинного слова), равную целочисленной степени числа 2;
- задают доступный объем памяти вычислительной системы М бит;
- задают размер s сообщения S, причем s кратно W;
- задают значение разрядности n регистра сдвига с линейной обратной связью (РСЛОС) по схеме Фибоначчи, причем выполняется соотношение
,
где ;
- формируют РСЛОС по схеме Фибоначчи со следующими параметрами:
внутренний примитивный полином
,

внешний полином
,
где - количество ячеек РСЛОС,
причем ,
исходное состояние ячеек РСЛОС qi образует вектор
,
причем , ,
выходное состояние ячеек РСЛОС за один такт работы образует вектор
,
причем , ,
где ,
для каждого
,
определяют все делители числа m в виде значений р0, р1, …, pd, причем р01<…pd,
выбирают максимально возможный делитель р из соотношения
;
- модифицируют РСЛОС, выполняя следующие действия:
- вычисляют R матриц Нr, причем r = (R-1), …, 0, размерностью n×k строк, каждая из которых имеет длину n×k бит, выполняя следующие действия:
- вычисляют
k=р;
- вычисляют
,
где R - количество матриц Нr;
- вычисляют
r = 0;
- (А5) если не выполняется соотношение
r<R,
то переходят к выполнению этапа А7;
- вычисляют
j=0;
- (А6) если не выполняется соотношение
j<k,
то вычисляют
r = r+1,
переходят к выполнению этапа А5;
- вычисляют
l=0;
- если не выполняется соотношение
l<n,
то вычисляют
j=j+1,
переходят к выполнению этапа А6;
- устанавливают исходное состояние РСЛОС
,
где , ,
, ;
- вычисляют после k тактов работы для каждого исходного состояния новое состояние РСЛОС
;
- вычисляют (jk+l)-е значение для матрицы Нr путем конкатенации k значений ячеек
;
- вычисляют
l=l+1,
переходят к выполнению этапа А6;
- (А7) записывают в ячейки модифицированного РСЛОС блоки s исходного сообщения S, причем исходное состояние ячеек модифицированного РСЛОС qi образует вектор
,
где ,
причем ;
- осуществляют R тактов работы модифицированного РСЛОС, выполняя на каждом такте следующие действия:
- вычисляют выходное состояние ячеек модифицированного РСЛОС
за один такт работы, образующие вектор
,
каждое значение которого вычисляется по формуле

для каждого ,
а значение вычисляется по соотношению
,
где ,
где zr,j - значение j-го бита ячейки Qr,
причем ,
,
;
- получают после R тактов работы РСЛОС линейное преобразование блоков s сообщения S;
- считывают из ячеек модифицированного РСЛОС блоки s линейно преобразованного сообщения S;
- объединяют блоки и получают линейно преобразованное сообщение S.

Описание

[1]

Область техники, к которой относится изобретение

[2]

Предлагаемое изобретение относится к области вычислительной техники и криптографии и, в частности, к использованию регистров сдвига для реализации линейного преобразования большой размерности и последующего применения в устройствах криптографической защиты данных.

[3]

Уровень техники

[4]

Для криптографической защиты данных используются различные способы реализации линейных преобразований.

[5]

Так, известен способ, улучающий и программную, и аппаратную реализацию фиксированного линейного преобразования шифра AES, основанный на использовании специфического вида матрицы линейного преобразования. Известный способ относится к криптографической области и также может быть использован для программной или аппаратной реализации в системах защиты информации [1].

[6]

Известны также и другие способы линейных преобразований [2-4].

[7]

Недостатками известных способов являются невозможность их применения для реализации произвольных линейных преобразований, в том числе больших размерностей, и неэффективное использование ресурсов для ряда вычислительных платформ.

[8]

Перспективным для реализации линейного преобразования является использование регистров сдвига с линейной обратной связью (РСЛОС) [5]. Такие регистры, выполняемые программно или аппаратно и способные работать как в прямом, так и в обратном направлении, могут быть реализованы на различных вычислительных платформах (фиг. 1-4).

[9]

Опубликовано большое количество научных работ, где предложено осуществление линейных преобразований на основе различных РСЛОС, включая РСЛОС типа Галуа и Фибоначчи.

[10]

Но такие линейные преобразования обычно имеют малую размерность. При построении рассеивающего слоя криптографического преобразования, например блочного шифра или хэш-функции, они не позволяют обработать целый блок большой размерности и требуют дополнительного линейного преобразования для повышения уровня защищенности, например, в стандарте AES - это функция ShiftRows(), в блочном шифре LED - функция ShiftCells(), в хэш-функции ГОСТ Р 34.11-2012 - функция перестановки байт. Обычно использование линейных преобразований малой размерности компенсируется увеличением числа раундов криптографического преобразования для достижения высокой стойкости, что ведет к снижению быстродействия.

[11]

Наиболее близким по своей технической сущности к заявляемому является способ [2], позволяющий эффективно реализовать РСЛОС, который выполняет линейную операцию и может быть применен для линейного преобразования. Способ основан на использовании разделимых таблиц и предложен для реализации РСЛОС только в двоичном поле.

[12]

Этот способ принимается за прототип.

[13]

Другой известный способ [3] позволяет реализовать РСЛОС большого размера, требует мало памяти, но работает медленно, а способ [4] работает быстро, но требует очень много памяти.

[14]

Недостатком прототипа и перечисленных известных способов является невозможность выбора параметров вычислительной системы для эффективного использования ее ресурсов, что не позволяет сократить количество необходимых тактов работы используемых в системе процессоров для вычисления результата преобразования.

[15]

Раскрытие изобретения

[16]

Техническим результатом является обеспечение возможности выбора взаимосвязанных характеристик (быстродействие и объем необходимой памяти) для конкретной вычислительной системы при реализации линейного преобразования большой размерности.

[17]

Для этого предлагается способ, позволяющий осуществить линейное преобразование исходного сообщения с использованием РСЛОС типа Галуа фиг. 1, 2 или типа Фибоначчи фиг. 3, 4.

[18]

При этом, зная разрядность процессора и объем выделенной для реализации способа памяти, можно заранее определить, сколько тактов работы РСЛОС необходимо для вычисления линейного преобразования исходного сообщения.

[19]

Вариант предлагаемого способа, предусматривающий построение РСЛОС типа Галуа и линейного преобразования сообщения S, представленного в двоичном виде, заключающийся в том, что

[20]

• задают разрядность W процессора вычислительной системы (размер машинного слова), равную целочисленной степени числа 2;

[21]

• задают доступный объем памяти вычислительной системы М бит;

[22]

• задают размер s сообщения S, причем s кратно W;

[23]

• задают значение разрядности n регистра сдвига с линейной обратной связью (РСЛОС) по схеме Галуа (фиг. 1, 2), причем выполняется соотношение

[24]

,

[25]

где N∈0, 1, 2, …,

[26]

• формируют РСЛОС по схеме Галуа со следующими параметрами:

[27]

внутренний примитивный полином

[28]

,

[29]

ai∈GF(2)

[30]

внешний полином

[31]

,

[32]

где - количество ячеек РСЛОС,

[33]

причем hi∈GF(2n),

[34]

исходное состояние ячеек РСЛОС qi образует вектор данных

[35]

X=(qm-1, qm-2, …, q2, q1, q0),

[36]

причем qi∈GF(2n), 0≤i≤m-1

[37]

выходное состояние ячеек РСЛОС за один такт работы образует вектор

[38]

,

[39]

причем , 0≤i≤m-1,

[40]

где , для 1≤i≤m-1,

[41]

[42]

• определяют все делители числа m в виде значений р0, р1, …, pd, причем p0<p1< … pd;

[43]

• выбирают максимально возможный делитель р из соотношения

[44]

;

[45]

• модифицируют РСЛОС, выполняя следующие действия:

[46]

○ вычисляют R матриц Hr, причем r=(R-1), …, 0. размерностью n×k строк, каждая из которых имеет длину n×k бит, выполняя следующие действия:

[47]

▪ вычисляют

[48]

k=p,

[49]

▪ вычисляют

[50]

,

[51]

где R - количество матриц Н;

[52]

▪ вычисляют

[53]

j=m-k;

[54]

▪ вычисляют

[55]

t=0;

[56]

▪ (А1) если не выполняется соотношение

[57]

j≤m-1,

[58]

то переходят к выполнению этапа A3;

[59]

▪ вычисляют

[60]

l=0,

[61]

▪ (А2) если не выполняется соотношение

[62]

l<n,

[63]

то вычисляют

[64]

j=j+1,

[65]

t=t+1,

[66]

переходят к выполнению этапа А1;

[67]

▪ устанавливают исходное состояние РСЛОС

[68]

X=(qm-1, …, q1, q0),

[69]

, 0≤i≤m-1,

[70]

где qi∈GF(2n),

[71]

▪ вычисляют после k тактов работы для каждого исходного состояния новое состояние РСЛОС

[72]

,

[73]

где , 0≤i≤m-1,

[74]

▪ вычисляют t-e значения для всех матриц Hi, i=r-1…0 путем конкатенации k значений ячеек q′

[75]

,

[76]

причем 0≤r≤R-1,

[77]

▪ вычисляют

[78]

l=l+1,

[79]

переходят к выполнению этапа А2;

[80]

• (A3) записывают в ячейки модифицированного РСЛОС блоки s исходного сообщения S, причем исходное состояние ячеек модифицированного РСЛОС qi образует вектор

[81]

X′=(QR-1, …, Q1, Q0),

[82]

где Qr - это содержимое ячеек ,

[83]

причем 0≤r≤R-1

[84]

• осуществляют R тактов работы модифицированного РСЛОС, выполняя на каждом такте следующие действия:

[85]

▪ вычисляют выходное состояние ячеек модифицированного РСЛОС за один такт работы, образующие вектор

[86]

,

[87]

каждое значение которого вычисляется по формуле

[88]

[89]

для каждого i=R-1, …, 1,

[90]

причем

[91]

,

[92]

где ,

[93]

где zR-1,j - значение j-го бита вектора QR-1,

[94]

причем r=R-1, …, 1, 0,

[95]

j=0, 1, …, W-1,

[96]

zR-1,j∈GF(2);

[97]

• получают после R тактов работы РСЛОС линейное преобразование блоков s сообщения S;

[98]

• считывают из ячеек модифицированного РСЛОС блоки линейно преобразованного сообщения s;

[99]

• объединяют блоки и получают линейно преобразованное сообщение S.

[100]

Вариант предлагаемого способа, предусматривающий построение РСЛОС типа Фибоначчи и линейного преобразования сообщения S, представленного в двоичном виде, заключающийся в том, что

[101]

• задают разрядность W процессора вычислительной системы (размер машинного слова), равную целочисленной степени числа 2;

[102]

• задают доступный объем памяти вычислительной системы М бит;

[103]

• задают размер s сообщения S, причем s кратно W;

[104]

• задают значение разрядности n регистра сдвига с линейной обратной связью (РСЛОС) по схеме Фибоначчи (фиг. 3, 4), причем выполняется соотношение

[105]

,

[106]

где N∈0, 1, 2, …,

[107]

• формируют РСЛОС по схеме Фибоначчи со следующими параметрами:

[108]

внутренний примитивный полином

[109]

,

[110]

ai∈GF(2)

[111]

внешний полином

[112]

,

[113]

где - количество ячеек РСЛОС,

[114]

причем hi∈GF(2n)

[115]

исходное состояние ячеек РСЛОС qi образует вектор

[116]

X=(qm-1, qm-2, …, q2, q1, q0),

[117]

причем qi∈GF(2n), 0≤i≤m-1

[118]

выходное состояние ячеек РСЛОС за один такт работы образует вектор

[119]

,

[120]

причем , 0≤i≤m-1,

[121]

где ,

[122]

для каждого i=0, …, m-2

[123]

[124]

• определяют все делители числа m в виде значений р0, р1, …, pd, причем р01< … pd;

[125]

• выбирают максимально возможный делитель р из соотношения

[126]

;

[127]

• модифицируют РСЛОС, выполняя следующие действия:

[128]

○ вычисляют R матриц Hr, причем r=(R-1), …, 0, размерностью n×k строк, каждая из которых имеет длину n×k бит, выполняя следующие действия:

[129]

- вычисляют

[130]

k=р,

[131]

▪ вычисляют

[132]

,

[133]

где R - количество матриц Hr;

[134]

▪ вычисляют

[135]

r=0;

[136]

▪ (А5) если не выполняется соотношение

[137]

r<R,

[138]

то переходят к выполнению этапа А7;

[139]

▪ вычисляют

[140]

j=0,

[141]

▪ (А6) если не выполняется соотношение

[142]

j<k,

[143]

то вычисляют

[144]

r=r+1,

[145]

переходят к выполнению этапа А5;

[146]

▪ вычисляют

[147]

l=0,

[148]

▪ если не выполняется соотношение

[149]

l<n,

[150]

то вычисляют

[151]

j=j+1,

[152]

переходят к выполнению этапа А6;

[153]

▪ устанавливают исходное состояние РСЛОС

[154]

X=(qm-1, qm-2, …, q1, q0),

[155]

, 0≤i≤m-1

[156]

где qi∈GF(2n);

[157]

▪ вычисляют после k тактов работы для каждого исходного состояния новое состояние РСЛОС

[158]

,

[159]

где , 0≤i≤m-1;

[160]

▪ вычисляют (jk+l)-е значение для матрицы Hr путем конкатенации k значений ячеек , , …,

[161]

,

[162]

причем 0≤r≤R-1;

[163]

▪ вычисляют

[164]

l=l+1,

[165]

переходят к выполнению этапа А6;

[166]

• (А7) записывают в ячейки модифицированного РСЛОС блоки s исходного сообщения S, причем исходное состояние ячеек модифицированного РСЛОС qi образует вектор

[167]

X′=(QR-1, …, Q1, Q0),

[168]

где ,

[169]

причем 0≤r≤R-1;

[170]

• осуществляют R тактов работы модифицированного РСЛОС, выполняя на каждом такте следующие действия:

[171]

▪ вычисляют выходное состояние ячеек модифицированного РСЛОС за один такт работы, образующие вектор

[172]

,

[173]

каждое значение которого вычисляется по формуле

[174]

[175]

для каждого i=0, …, R-2,

[176]

и

[177]

,

[178]

а значение вычисляется по соотношению

[179]

,

[180]

где ,

[181]

где zr,j - значение j-го бита вектора Qr,

[182]

причем r=R-1, …, 1, 0,

[183]

j=0, 1, …, W-1,

[184]

zr,j∈GF(2);

[185]

• получают после R тактов работы РСЛОС линейное преобразование блоков s сообщения S;

[186]

• считывают из ячеек модифицированного РСЛОС блоки s линейно преобразованного сообщения S;

[187]

• объединяют блоки и получают линейно преобразованное сообщение S.

[188]

Для реализации предложенного способа с использованием РСЛОС типа Галуа модифицируют РСЛОС.

[189]

Основное отличие модифицированного РСЛОС Галуа - способ вычисления значения функции обратной связи. В модифицированных РСЛОС Галуа значения функции обратной связи регистра вычисляются по таблицам, в зависимости от значений бит старшей ячейки регистра.

[190]

Исходное линейное преобразование . Преобразование L задается на основе РСЛОС Галуа над композиционным полем GF((2n)m), где s=m×n, с помощью внутреннего примитивного полинома

[191]

,

[192]

где ai∈GF(2),

[193]

и внешнего неприводимого полинома

[194]

,

[195]

где hi∈GF(2n) и h0=1.

[196]

Исходное состояние ячеек РСЛОС Галуа qi образует вектор данных

[197]

X=(qm-1, qm-2, …, q2, q1, q0),

[198]

где qi∈GF(2n), 0≤i≤m-1.

[199]

Элементы композиционного поля GF((2n)m) также вычисляются с помощью следующего регистра сдвига с линейной обратной связи типа Галуа (далее РСЛОС) на основе полиномов f(x) и h(y) [4].

[200]

Под линейным преобразованием L исходного вектора данных X=(qm-1, qm-2, …, q2, q1, q0) будем понимать результат m тактов работы РСЛОС.

[201]

Выходное состояние ячеек РСЛОС Галуа за один такт работы образует вектор

[202]

,

[203]

где , 0≤i≤m-1,

[204]

и каждое значение вычисляется по формуле

[205]

[206]

для каждого i=m-1, …, 1 и .

[207]

Операции сложения и умножения двух n-разрядных чисел в РСЛОС Галуа осуществляются в поле GF(2n). Линейное преобразование исходного вектора данных осуществляется за m тактов работы РСЛОС типа Галуа.

[208]

Итогом преобразования является новое состояние регистра на m-ом такте. А обратное линейное преобразование L-l осуществляется за m тактов работы РСЛОС в обратном направлении.

[209]

Пусть р0, р1, …, pd, - все делители числа m, причем р0х< … pd. Обозначаются значения k=pi,и W=nk, где W - разрядность процессора, на котором реализуется исходное линейное преобразование, pi выбирается исходя из размера доступной памяти М. При этом общая схема модифицированного РСЛОС Галуа имеет вид, показанный на фиг. 5.

[210]

Пусть исходное состояние ячеек модифицированного РСЛОС Галуа образует вектор

[211]

X′=(QR-1, …, Q1, Q0),

[212]

где Qr равно содержимому ячеек ,

[213]

причем 0≤r≤R-1.

[214]

Выходное состояние ячеек модифицированного РСЛОС Галуа за один такт работы образует вектор , и каждое значение для каждого r=R-1, …, 1 вычисляется по формуле

[215]

[216]

причем

[217]

,

[218]

а функция определяется в виде

[219]

,

[220]

где r=R-1, …, 1, 0,

[221]

zR-1,j∈GF(2),

[222]

j=0, 1, …, W-1 - биты ячейки QR-1 модифицированного РСЛОС Галуа.

[223]

Если состояние на m-ом такте есть результат линейного преобразования L по схеме РСЛОС Галуа (фиг. 1), то такое же состояние будет получено на R-ом такте работы модифицированного РСЛОС Галуа (фиг. 5). Причем R тактов работы модифицированного РСЛОС требуют

[224]

[225]

операций проверки "true - false" для всех бит ячейки QR-1. Количество сложений по модулю два W-разрядных чисел для каждого вычисления значения по каждой таблице равно W - 1. Следовательно, каждый такт работы модифицированного РСЛОС Галуа требует следующего количества сложений

[226]

[227]

В итоге необходимое количество сложений по модулю два W-разрядных чисел для R тактов работы модифицированного РСЛОС Галуа равно

[228]

[229]

Объем необходимой памяти равен

[230]

[231]

для сохранения R таблиц Hr, r=15, …, 0.

[232]

Для правильного функционирования схемы фиг. 5 по правилу схемы фиг. 1 (получения одинакового выхода при одинаковых входных данных) необходимо определить R таблиц Hr, r=(R-1), …, 0. Блок-схема процесса их вычисления представлена на фиг. 6.

[233]

Последовательность вычисления R таблиц Hr, r=(R-1), …, 0 базируется на принципе суперпозиции линейных преобразований. Входные данные алгоритма - линейное преобразование над заданным композиционным полем GF((2n)m), и р - любой из делителей числа m. А выходные - R необходимых таблиц Hr, r=(R-1), …, 0.

[234]

Рассмотрим каждый шаг алгоритма (фиг. 6).

[235]

Шаг 1 [Блок 2]: Присваивают значения k=р, , j=m-k и t=0;

[236]

Шаг 2 [Пункт А - блок 3]: проверяют условие

[237]

j≤m-1

[238]

• если условие выполняется, то присваивают l=0 (блок 4) и переходят к шагу 3 [Пункту Б];

[239]

• если условие не выполняются, то завершают процесс;

[240]

Шаг 3 [Пункт Б - блок 5] проверяют условие

[241]

l<n

[242]

• если условие выполняется, то

[243]

○ определяют исходное состояние РСЛОС Галуа (блок 6):

[244]

, 0≤i≤m-1,

[245]

○ вычисляют новое состояние РСЛОС Галуа после k тактов работы для каждого исходного состояния X=(qm-1, …, q1, q0), где, 0≤i≤m-1 (блок 7),

[246]

○ вычисляют t-е значения для всех таблиц Н путем конкатенации k значений ячеек q′ (блок 8):

[247]

, 0≤r≤R-1,

[248]

○ увеличивают значение l=l+1 (блок 9), и переходят к шагу 3 [Пункту Б];

[249]

• если условие не выполняются, то увеличивают значения j=j+1, t=t+1 (блок 10), и переходят к шагу 2 [Пункту А].

[250]

Порядок вычисления необходимых таблиц для обратного линейного преобразования L-1 выполняется аналогичным образом. Но при этом полученный модифицированный РСЛОС типа Галуа будет работать в противоположном направлении с проверкой на "true - false" для всех бит ячейки Q0 вместо QR-1.

[251]

Если линейное преобразование задается на основе РСЛОС Фибоначчи над композиционным полем GF((2n)m), где s=m×n, с помощью внутреннего примитивного полинома

[252]

,

[253]

где ai∈GF(2),

[254]

и внешнего неприводимого полинома

[255]

,

[256]

где hi∈GF(2n) и h0=1,

[257]

то можно его реализовать по схеме модифицированного РСЛОС Фибоначчи.

[258]

Исходное состояние ячеек РСЛОС Фибоначчи qi образует вектор данных

[259]

X=(qm-1, qm-2, …, q2, q1, q0),

[260]

где qi∈GF(2n), 0≤i≤m-1

[261]

Выходное состояние ячеек РСЛОС Фибоначчи за один такт работы образует вектор

[262]

,

[263]

где , 0≤i≤m-1

[264]

и каждое значение вычисляется по формуле

[265]

[266]

для каждого i=0, …, m-2 и

[267]

.

[268]

Операции сложения и умножения двух n-разрядных чисел в РСЛОС Фибоначчи осуществляются в поле GF(2n). Линейное преобразование исходного вектора данных - m тактов работы РСЛОС Фибоначчи (фиг. 3). Итогом преобразования является новое состояние регистра на m-ом такте. А обратное линейное преобразование L-1 достигается через m тактов работы РСЛОС Фибоначчи в обратном направлении (фиг. 4).

[269]

В этом случае общая схема модифицированного РСЛОС Фибоначчи имеет вид, представленный на фиг. 7.

[270]

Пусть исходное состояние ячеек модифицированного РСЛОС Фибоначчи образует вектор

[271]

X′=(QR-1, …, Q1, Q0),

[272]

где , 0≤r≤R-1.

[273]

Выходное состояние ячеек за один такт работы образует вектор

[274]

,

[275]

и каждое значение вычисляется по формуле для каждого r=0, …, R-2 и

[276]

,

[277]

где ,

[278]

r=R-1, …, 1, 0

[279]

zr,j∈GF(2),

[280]

j=0, 1, …, W-1 - биты ячейки модифицированного РСЛОС Фибоначчи.

[281]

Если состояние на m-ом такте есть результат линейного отображения L по схеме РСЛОС Фибоначчи на фиг. 3, то состояние на R-ом такте соответствует его результату по схеме модифицированного РСЛОС Фибоначчи на фиг. 7. Причем R тактов его работы требуют

[282]

[283]

операций проверки "true - false". Количество сложений по модулю два поразрядных чисел для вычисления каждого значения по каждой таблице равно W-1. Следовательно, каждый такт работы модифицированного РСЛОС Фибоначчи требует

[284]

[285]

операций сложения по модулю два W-разрядных чисел. В итоге необходимое количество сложений по модулю два W-разрядных чисел для R тактов работы регистра равно

[286]

[287]

Объем необходимой памяти равен

[288]

[289]

для сохранения R таблиц Hr, r=15, …, 0.

[290]

Для корректной работы модифицированной схемы необходимо определить R таблиц Hr, r=(R-1), …, 0. Блок-схема процесса их вычисления представлена на фиг. 8.

[291]

Алгоритм вычисления R таблиц Hr, r=(R-1), …, 0 также базируется на принципе суперпозиции линейных преобразований. Входные данные алгоритма - линейное преобразование над заданным композиционным полем GF((2n)m), построенное по схеме РСЛОС Фибоначчи, и р - любой из делителей числа m. А выходные - R необходимых таблиц Hr, r=(R-1), …, 0.

[292]

Рассмотрим каждый шаг алгоритма.

[293]

Шаг 1 [Блок 2]: Присваивают значения k=р, и r=0;

[294]

Шаг 2 [Пункт А - блок 3]: проверяют условие

[295]

r<R

[296]

• если условие выполняется, то присваивают j=0 (блок 4) и переходят к шагу 3 [Пункту Б];

[297]

• если условие не выполняется, то завершают процесс; Шаг 3 [Пункт Б - блок 5] проверяют условие

[298]

j<k,

[299]

• если условие выполняется, то присваивают l=0 (блок 6) и переходят к шагу 4 [Пункту В];

[300]

• если условие не выполняется, то увеличивают значение r=r+1 (блок 12), и переходят к шагу 2 [Пункту А];

[301]

Шаг 4 [Пункт В - блок 7] проверяют условие

[302]

l<n,

[303]

• если условие выполняется, то

[304]

○ определяют исходное состояние РСЛОС Фибоначчи (блок 8):

[305]

, 0≤i≤m-1,

[306]

○ вычисляют новое состояние РСЛОС Фибоначчи после k тактов работы для каждого исходного состояния X=(qm-1, …, q1, q0), где , 0≤i≤m-1 (блок 9),

[307]

○ вычисляют (jk+l)-е значение для таблицы Hr путем конкатенации k значений ячеек , , …, (блок 10)

[308]

[309]

○ увеличивают значение l=l+1 (блок 10) и переходят к шагу 4 [Пункту В];

[310]

○ если условие не выполняется, то увеличивают значение j=j+1 (блок 11), и переходят к шагу 3 [Пункту Б].

[311]

Порядок вычисления необходимых таблиц для обратного линейного отображения L-l выполняется аналогичным образом. Но при этом необходимо использовать схему РСЛОС Фибоначчи (фиг. 4) для вычисления его состояния (блок 9, фиг. 8). Полученный модифицированный РСЛОС сдвигается в противоположном направлении.

[312]

Краткое описание чертежей

[313]

На фиг. 1 показана схема работы линейного регистра сдвига с линейной обратной связью типа Галуа в прямом направлении.

[314]

На фиг. 2 показана схема работы линейного регистра сдвига с линейной обратной связью типа Галуа в обратном направлении.

[315]

На фиг. 3 показана схема работы линейного регистра сдвига с линейной обратной связью типа Фибоначчи в прямом направлении.

[316]

На фиг. 4 показана схема работы линейного регистра сдвига с линейной обратной связью типа Фибоначчи в обратном направлении.

[317]

На фиг. 5 показана схема работы модифицированного линейного регистра сдвига с линейной обратной связью типа Галуа.

[318]

На фиг. 6 показана блок-схема алгоритма вычисления таблиц функции обратной связи модифицированного линейного регистра сдвига с линейной обратной связью типа Галуа.

[319]

На фиг. 7 показана схема работы модифицированного линейного регистра сдвига с линейной обратной связью типа Фибоначчи.

[320]

На фиг. 8 показана блок-схема алгоритма вычисления таблиц функции обратной связи модифицированного линейного регистра сдвига с линейной обратной связью типа Фибоначчи.

[321]

На фиг. 9 показана схема линейного регистра сдвига с линейной обратной связью типа Галуа для прямого линейного преобразования для примера реализации способа.

[322]

На фиг. 10 показана схема линейного регистра сдвига с линейной обратной связью типа Галуа для обратного линейного преобразования для примера реализации способа.

[323]

На фиг. 11 показана схема работы модифицированного линейного регистра сдвига с линейной обратной связью типа Галуа для прямого линейного преобразования для примера реализации способа.

[324]

На фиг. 12 показана схема работы модифицированного 16-разрядного линейного регистра сдвига с линейной обратной связью типа Галуа для прямого линейного преобразования для примера реализации способа.

[325]

На фиг. 13 показана схема работы модифицированного 32-разрядного линейного регистра сдвига с линейной обратной связью типа Галуа для прямого линейного преобразования для примера реализации способа.

[326]

На фиг. 14 показана схема работы модифицированного 64-разрядного линейного регистра сдвига с линейной обратной связью типа Галуа для прямого линейного преобразования для примера реализации способа.

[327]

Осуществление изобретения

[328]

Рассмотрим пример реализации предложенного способа с использованием модифицированного РСЛОС типа Галуа.

[329]

Предложенный способ может быть реализован в прикладной программе для вычислительной системы, в качестве которой может быть использован компьютер с одним процессором с разрядностью 8 и выше, работающий под управлением операционной системы (например, Microsoft Windows 7).

[330]

Прикладная программа, реализующая работу РСЛОС типа Галуа (или типа Фибоначчи), может быть составлена специалистом по программированию (программистом) на основе знания известных принципов и структуры РСЛОС соответствующего типа и действий предложенного способа.

[331]

Для удобства при анализе и синтезе, в описании изобретения рассматривается линейное преобразование L с конкретными параметрами, типичными для большого класса криптографических алгоритмов:

[332]

• исходное линейное преобразование ;

[333]

• композиционное поле GF((28)16) (m=16, n=8);

[334]

• внутренний примитивный полином

[335]

[336]

для построения поля GF(28);

[337]

• внешний неприводимый полином h(y) для построения композиционного поля GF((28)16)

[338]

,

[339]

где

[340]

[341]

hi∈GF(28)

[342]

Схема РСЛОС для прямого преобразования L и РСЛОС для обратного преобразования L-1 изображены на фиг. 9 и 10 соответственно.

[343]

Ранее для линейного преобразования было выявлено полезное в области криптографии свойство: если в ячейки РСЛОС записать любую последовательность символов и «сдвинуть» регистр 16 раз влево в регистре останутся проверочные символы кода с максимальным расстоянием (МДР кода) С(32,16,17) [6]. Минимальное расстояние между любыми кодовыми словами данного кода равно 17. Если взять такой код в качестве линейного преобразования блочного шифра, то оно будет обладать максимальным свойством рассеивания (d=17).

[344]

Последовательность работы одного такта РСЛОС:

[345]

○ исходное состояние - вектор X=(q15, q14, …, q2, q1, q0), где qi∈GF(28), 0≤i≤15. Вектор X имеет 16 координат, расположенных слева направо в 16 ячеек РСЛОС, начиная с координаты индексом i=15;

[346]

○ в работе РСЛОС Галуа только значение q15 в самой старшей ячейке участвует в выработке значения функции обратной связи;

[347]

○ выходное состояние - вектор , где , 0≤i≤15. Значения для каждого i=15, …, 1 вычисляются

[348]

,

[349]

при этом q0=h0·ql5

[350]

Под линейным преобразованием L исходного вектора данных

[351]

X=(q15, q14, …, q2, q1, q0)

[352]

будем понимать 16 тактов работы РСЛОС.

[353]

Итогом преобразования является новое состояние регистра на m-ом такте, которое можно записать следующим образом

[354]

,

[355]

где , 0≤i≤15 - значения ячеек РСЛОС.

[356]

Обратное преобразование L-1 - 16 тактов работы РСЛОС в обратном направлении.

[357]

Обозначим через k какой-нибудь делитель числа m=16 (его выбор определяется имеющейся разрядностью процессора W и допустимым объемом памяти М).

[358]

Сущность предлагаемого способа реализации на соответствующей платформе зависит от значения k и основывается на применении принципа суперпозиции при рассмотрении влияния каждого бита текущего состояния РСЛОС на последующее. В соответствии с тем, что для каждого k имеется способ реализации преобразования L на (nk)-разрядном процессоре.

[359]

Рассмотрим следующие случаи.

[360]

Расчетный случай 1: k=1. В этом случае рассматривается способ реализации преобразования L на 8-разрядных процессорах (n·k=8·1=8). Для данного случая выполняются следующие действия:

[361]

• вычисляют количество r необходимых вычисляемых таблиц Hj, j=15, …, 0

[362]

[363]

• вычисляют 16 таблиц Hj, j=15, …, 0, каждая из них имеет nk=8·1=8 элементов, а элементы представляют собой 8-разрядные числа (элементы поля GF(28)), выполняя следующие действия:

[364]

○ вычисляют соответствующее состояние РСЛОС (фиг. 1) после k=1 тактов по каждому исходному состоянию

[365]

[366]

для всех q15=2l, l=0, …, 7, т.е. рассматривают влияние каждого бита числа q15 на состояние РСЛОС (фиг. 1) после k=1 тактов, в результате получают nk=8 состояний;

[367]

○ составляют массив А из nk=8 полученных состояний таким, что последняя его строка соответствует состоянию при j=m-k=16-1=15 и l=0, предпоследняя его строка соответствует состоянию при j=m-k=16-1=15 и l=1, и т.д. В результате чего массив А имеет nk=8 строк и m=16 столбцов. Первый столбец массива А соответствует значениям ячейки q15, второй - q14 и т.д. (табл. 1);

[368]

○ в случае k=1 таблицы Hj, j=15, …, 0 равны каждому столбцу массива А в соответствии с индексами.

[369]

[370]

• строят расширенную схему РСЛОС (фиг. 5), который имеет r=16 ячеек, значение каждой из которых представляет собой 8-разрядное число;

[371]

• обозначают через (Ql5, Q14, …, Q2, Q1, Q0) состояние расширенного РСЛОС, где Qi∈GF(28), i=15, 14, …, 0;

[372]

• определяют значение f (Hj) функции обратной связи для каждой Hj по формуле

[373]

,

[374]

где j=15, …, 1, 0,

[375]

w15,u∈GF(2)

[376]

u=0, 1, …, 7 - биты ячейки Q15 расширенного РСЛОС.

[377]

Это значит, что если u-й бит ячейки Q15 равен единице, то соответствующая строка Hj,u участвует в процессе выработки значения функций обратной связи.

[378]

• прямое линейное преобразование L есть r=16 тактов работы расширенного РСЛОС;

[379]

• 16 тактов работы расширенного РСЛОС требуют

[380]

операций проверки "true - false" для всех битов ячейки Q15 и

[381]

операций сложения по модулю два двух n×k-разрядных чисел Ql и Hl,j, где l=0, 1, …, r-1 и j=0, 1, …, nk.

[382]

Объем необходимой памяти равен

[383]

[384]

для сохранения 16 таблиц Hj, j=15, …, 0.

[385]

Порядок реализации обратного линейного преобразования L-1 на 8-разрядных процессорах выполняется аналогичным образом с использованием РСЛОС (фиг. 2) для вычисления 16 таблиц Hj,j=15, …, 0. За счет симметричности внешнего неприводимого полинома h(y) для рассмотренного линейного преобразования можно использовать те же 16 таблиц Hj, j=15, …, 0 и для реализации прямого преобразования, и для обратного ему.

[386]

Расчетный случай 2: k=2. В этом случае рассматривается способ реализации преобразования L на 16-разрядных процессорах. Данный способ включает следующие действия:

[387]

• вычисляют количество r необходимых вычисляемых таблиц Hj, j=7, …, 0

[388]

[389]

• вычисляют r=8 таблиц Hj, j=7, …, 0, каждая из них имеет nk=8·2=16 элементов, а элементы представляют собой 16-разрядные числа, выполняя следующие действия:

[390]

○ вычисляют соответствующее состояние РСЛОС (фиг. 1) после k=2 тактов по каждому исходному состоянию

[391]

[392]

для всех

[393]

qj=2l, j=14, 15 и l=0, …, 7,

[394]

начиная с ячейки на позиции j=m-k=16-2=14, т.е. рассматривают влияние каждого бита числа на состояние РСЛОС (фиг. 1) после k=2 тактов. В результате получают nk=16 состояний;

[395]

○ составляют массив А из nk=16 полученных состояний таким, что последняя его строка соответствует состоянию при j=m-k=16-2=14 и l=0, предпоследняя его строка соответствует состоянию при j=m-k=16-2=14 и l=1, и т.д., и первая строка массива А соответствует состоянию при j=m-1=16-1=15 и l=n-1=8-1=7. В результате чего массив А имеет nk=16 строк и m=16 столбцов;

[396]

○ формируют r=8 таблиц Hj, j=7, …, 0, начиная со значения j=(r-1)=8-1=7, путем конкатенации k=2 значений в соседних столбцах массива А, начиная с первого его столбца, причем нумеруют таким образом, например, для таблицы H7, чтобы значение в первой строке первого столбца после конкатенации соответствует H7,15, а значение в последней строке того же столбца соответствует Н7,0(табл. 2).

[397]

[398]

• строят расширенную схему РСЛОС, причем расширенный РСЛОС имеет r=8 ячеек, значение каждой представляет собой 16-разрядное число;

[399]

• состояние расширенного РСЛОС можно представить как

[400]

(Q7, Q6, …, Q2, Q1, Q0)

[401]

• определяют значение функции обратной связи для каждой Hj по формуле

[402]

,

[403]

где j=7, …, 1, 0,

[404]

w7,u∈GF(2)

[405]

u=0, 1, …, 15 - биты ячейки Q7 расширенного РСЛОС.

[406]

Это значит, что если u-й бит ячейки Q15 равен единице, то соответствующая строка Hj,u участвует в процессе выработки значения функций обратной связи.

[407]

Прямое линейное преобразование L есть r=8 тактов работы расширенного РСЛОС, при этом 8 тактов работы расширенного РСЛОС требуют

[408]

операций проверки "true - false"

[409]

и

[410]

операций сложения по модулю 2 двух 16-разрядных чисел.

[411]

Объем необходимой памяти равен

[412]

[413]

для сохранения 8 таблиц Hj, j=7, …, 0.

[414]

Полученная схема представлена на фиг. 12.

[415]

Порядок реализации обратного линейного преобразования L-l на 16-разрядных процессорах выполняется аналогичным образом с использованием РСЛОС (фиг. 2) для формирования 8 таблиц Hj, j=7, …, 0. За счет симметричности внешнего неприводимого полинома h(y) для рассмотренного линейного преобразования можно использовать те же 8 таблиц Hj, j=7, …, 0 и для реализации прямого преобразования, и для обратного ему.

[416]

Аналогично, при k=4 и k=8 имеется возможность реализации прямого линейного преобразования L и обратного ему на 32- и 64-разрядных процессорах (фиг. 13 и 14 соответственно).

[417]

Результаты расчетов численных значений, характерных для реализации предложенного способа с использованием РСЛОС типа Галуа, представлены в табл. 3.

[418]

[419]

Сравнительный анализ значений, приведенных в табл. 3, показывает, что предложенный способ позволяет осуществлять выбор взаимосвязанных характеристик вычислительной системы.

[420]

Так, если имеется 8-разрядный процессор, то для реализации заданного линейного преобразования потребуется минимальный объем памяти 128 байт и 16 операций сдвига шестнадцати байт.

[421]

Если же в распоряжении имеется более мощный 64-разрядный процессор, то для реализации заданного линейного преобразования потребуется 1024 байт памяти и всего 2 операции сдвига двух 64-разрядных слов.

[422]

В результате, использование предложенного способа позволяет также предоставить разработчику дополнительные возможности при проектировании прикладной программы или аппаратного узла вычислительной системы, реализующей линейное преобразование, и учитывать возникающие в практике требования.

[423]

Источники информации

[424]

1. Европейская заявка №1514174, приоритет от 04.06.2003 г.

[425]

2. Патент США №5946473, приоритет от 17.06.1997 г.

[426]

3. Nicolay Borisenko, Nguyen Van Long, Alexey Bulygin. Algorithm design software and hardware implementation of large size linear mapping. 2nd Workshop on Current Trends in Cryptology (CTCrypt 2013) June 23-25, 2013, Ekaterinburg, Russia. Pre-proceedings, pp. 192-205;

[427]

4. Mikhail Borodin, Andrey Rybkin, Alexey Urivskiy. High-Speed Software Implementation of the Prospective 128-bit Block Cipher and Streebog Hash-Function, 3rd Workshop on Current Trends in Cryptology (CTCrypt 2014) June 5-6, 2014, Moscow, Russia. Pre-proceedings, pp. 189-197;

[428]

5. Кузьмин А.С., Нечаев А.А., Линейные рекуррентные последовательности над кольцами Галуа, Алгебра и логика, 3:2 (1995), с. 169-189.

[429]

6. Коусело Е., Гонсалес С., Марков В.Т., Нечаев А.А. Рекурсивные МДР-коды и рекурсивно дифференцируемые квазигруппы. Дискретная математика, том 10, выпуск 2, 1998, с. 3-29.

Как компенсировать расходы
на инновационную разработку
Похожие патенты