RU2014112547A - METHOD FOR FORMING S-BLOCKS WITH A MINIMUM NUMBER OF LOGIC ELEMENTS - Google Patents

METHOD FOR FORMING S-BLOCKS WITH A MINIMUM NUMBER OF LOGIC ELEMENTS Download PDF

Info

Publication number
RU2014112547A
RU2014112547A RU2014112547/08A RU2014112547A RU2014112547A RU 2014112547 A RU2014112547 A RU 2014112547A RU 2014112547/08 A RU2014112547/08 A RU 2014112547/08A RU 2014112547 A RU2014112547 A RU 2014112547A RU 2014112547 A RU2014112547 A RU 2014112547A
Authority
RU
Russia
Prior art keywords
vectors
proceed
calculate
vector
pair
Prior art date
Application number
RU2014112547/08A
Other languages
Russian (ru)
Other versions
RU2572423C2 (en
Inventor
Николай Павлович Борисенко
Дмитрий Александрович Васинев
Дык Тхо Хоанг
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 RU2014112547/08A priority Critical patent/RU2572423C2/en
Publication of RU2014112547A publication Critical patent/RU2014112547A/en
Application granted granted Critical
Publication of RU2572423C2 publication Critical patent/RU2572423C2/en

Links

Abstract

Способ формирования S-блоков с минимальным количеством логических элементов, заключающийся в том, что:задают исходный S-блок, имеющий n входов;формируют систему n булевых функций по заданному S-блоку в виде таблицы истинности;осуществляют умножение матрицы Адамара на значения булевых функций;получают n векторов, которые представляют собой значения коэффициентов полиномов Жегалкина;формируют множество векторов Р={р, р, …, p}, i=1…n, компоненты которых составлены из соответствующих коэффициентов полинома Жегалкина путем замены a, a, …, a, …, aна;устанавливают начальное значениеk=1;формируют множество D1{z, k, t, i} векторов длины 2(исходно пустое), где каждому вектору дополнительно сопоставлены значения z=0, t=0,где z - номер пары векторов в предыдущей итерации k;t - номер пары векторов в текущей итерации k;добавляют во множество D1 векторыd1{z=0, k=k, t=0, i}=p;устанавливают начальное значениеkt=0;находят наиболее часто встречающихся подпоследовательности компонент в векторах p, выполняя следующие действия:(А1) формируют исходно пустое множество DTMP{z, k, t=0, i} векторов длины n, где каждому вектору дополнительно сопоставлены значения t=0 и k=k;формируют исходно пустое множество D2{z, k, t, i} векторов длины 2;формируют исходно пустое множество D3{z, k, t, i} векторов длины 2;устанавливают начальное значение для номера парыt=1;(А2) если выполняется соотношение|D1{z, k, t=0, i}|<2,то переходят к выполнению этапа A3;определяют пару векторов (d1{z, k, t, i}, d1{z, k, t, j}) во множестве D1{k}, причем i≠j, такую что, величинаNxor(ν{k, t}=d1{z, k, t, i} &d1{z, k, t, j}),где,wt(ν) - вес Хэмминга вектора ν;ν - произвольный двоичный вектор;принимает максимальное значение;если Nxor=0 и t=1, то переходят к выполнению этапа А5;доA method for generating S-blocks with a minimum number of logic elements, which consists in the following: setting an initial S-block having n inputs; forming a system of n Boolean functions according to a given S-block in the form of a truth table; multiplying the Hadamard matrix by values of Boolean functions ; get n vectors, which are the values of the coefficients of the Zhegalkin polynomials; form a set of vectors P = {p, p, ..., p}, i = 1 ... n, whose components are composed of the corresponding coefficients of the Zhegalkin polynomial by replacing a, a, ..., a, ..., a; at set the initial value k = 1; form a set of D1 {z, k, t, i} vectors of length 2 (initially empty), where each vector is additionally associated with z = 0, t = 0, where z is the number of a pair of vectors in the previous iteration k ; t is the number of a pair of vectors in the current iteration k; add the vectors d1 {z = 0, k = k, t = 0, i} = p to the set D1; set the initial valuekt = 0; find the most frequent subsequences of components in the vectors p, performing the following steps: (A1) form an initially empty set of DTMP {z, k, t = 0, i} vectors of length n, where each vector is complemented by о, the values t = 0 and k = k are compared; they form an initially empty set D2 {z, k, t, i} of vectors of length 2; they form an initially empty set of D3 {z, k, t, i} vectors of length 2; set the initial value for the pair number t = 1; (A2) if the relation | D1 {z, k, t = 0, i} | <2 holds, then we go to step A3; we determine the pair of vectors (d1 {z, k, t, i} , d1 {z, k, t, j}) in the set D1 {k}, and i ≠ j such that Nxor (ν {k, t} = d1 {z, k, t, i} & d1 {z, k, t, j}), where, wt (ν) is the Hamming weight of the vector ν; ν is an arbitrary binary vector; takes the maximum value; if Nxor = 0 and t = 1, then proceed to stage A5; until

Claims (1)

Способ формирования S-блоков с минимальным количеством логических элементов, заключающийся в том, что:The method of forming S-blocks with a minimum number of logical elements, which consists in the fact that: задают исходный S-блок, имеющий n входов;set the source S-block having n inputs; формируют систему n булевых функций по заданному S-блоку в виде таблицы истинности;form a system of n Boolean functions for a given S-block in the form of a truth table; осуществляют умножение матрицы Адамара на значения булевых функций;multiplying the Hadamard matrix by the values of Boolean functions; получают n векторов, которые представляют собой значения коэффициентов полиномов Жегалкина;get n vectors, which are the values of the coefficients of the Zhegalkin polynomials; формируют множество векторов Р={р1, р2, …, pn}, i=1…n, компоненты которых составлены из соответствующих коэффициентов полинома Жегалкина путем замены a0, a1, …, aij, …, a1…n на a 0 , a 1 , , a 2 n 1
Figure 00000001
;
form a set of vectors P = {p 1 , p 2 , ..., p n }, i = 1 ... n, whose components are composed of the corresponding coefficients of the Zhegalkin polynomial by replacing a 0 , a 1 , ..., a ij , ..., a 1 ... n on a 0 , a one , ... , a 2 n - one
Figure 00000001
;
устанавливают начальное значениеset the initial value k=1;k is 1; формируют множество D1{z, k, t, i} векторов длины 2n (исходно пустое), где каждому вектору дополнительно сопоставлены значения z=0, t=0,form the set D1 {z, k, t, i} of vectors of length 2 n (initially empty), where each vector is additionally associated with the values z = 0, t = 0, где z - номер пары векторов в предыдущей итерации k;where z is the number of a pair of vectors in the previous iteration k; t - номер пары векторов в текущей итерации k;t is the number of a pair of vectors in the current iteration k; добавляют во множество D1 векторыadd vectors to the set D1 d1{z=0, k=k, t=0, i}=pi;d1 {z = 0, k = k, t = 0, i} = p i ; устанавливают начальное значениеset the initial value kt=0;kt = 0; находят наиболее часто встречающихся подпоследовательности компонент в векторах pi, выполняя следующие действия:find the most common subsequences of components in the vectors p i by performing the following steps: (А1) формируют исходно пустое множество DTMP{z, k, t=0, i} векторов длины n, где каждому вектору дополнительно сопоставлены значения t=0 и k=k;(A1) form an initially empty set of DTMP {z, k, t = 0, i} vectors of length n, where the values t = 0 and k = k are additionally associated with each vector; формируют исходно пустое множество D2{z, k, t, i} векторов длины 2n;form the initially empty set D2 {z, k, t, i} of vectors of length 2 n ; формируют исходно пустое множество D3{z, k, t, i} векторов длины 2n;form the initially empty set D3 {z, k, t, i} of vectors of length 2 n ; устанавливают начальное значение для номера парыset the initial value for the pair number t=1;t is 1; (А2) если выполняется соотношение(A2) if the relation |D1{z, k, t=0, i}|<2,| D1 {z, k, t = 0, i} | <2, то переходят к выполнению этапа A3;then proceed to step A3; определяют пару векторов (d1{z, k, t, i}, d1{z, k, t, j}) во множестве D1{k}, причем i≠j, такую что, величинаdefine a pair of vectors (d1 {z, k, t, i}, d1 {z, k, t, j}) in the set D1 {k}, and i ≠ j, such that, the quantity NxorA(ν{k, t}=d1{z, k, t, i} & d1{z, k, t, j}),Nxor A (ν {k, t} = d1 {z, k, t, i} & d1 {z, k, t, j}), гдеWhere
Figure 00000002
,
Figure 00000002
,
wtH(ν) - вес Хэмминга вектора ν;wt H (ν) is the Hamming weight of the vector ν; ν - произвольный двоичный вектор;ν is an arbitrary binary vector; принимает максимальное значение;takes the maximum value; если NxorA=0 и t=1, то переходят к выполнению этапа А5;if Nxor A = 0 and t = 1, then proceed to step A5; добавляют во множество DTMP последовательно векторы (d1{z, k, t, i}, d1{z, k, t, j}) для определенной пары tvectors (d1 {z, k, t, i}, d1 {z, k, t, j}) are sequentially added to the set of DTMPs for a specific pair t DTMP=DTMP∪{d1{z, k, t, i}, d1{z, k, t, j}};DTMP = DTMP∪ {d1 {z1, k, t, i}, d1 {z, k, t, j}}; добавляют во множество D3 векторadd to vector D3
Figure 00000003
Figure 00000003
удаляют из векторов каждой пары общие элементыremove common elements from the vectors of each pair
Figure 00000004
Figure 00000004
добавляют во множество D2 оба вектораadd both vectors to the set D2 D2=D2∪{d2{z, k, t, i}, d2{z, k, t, j}};D2 = D2∪ {d2 {z, k, t, i}, d2 {z, k, t, j}}; удаляют участвовавшие пары векторов из множества D1{z, k, t, i}remove the participating pairs of vectors from the set D1 {z, k, t, i} D1{z, k, t, i}=D1{z, k, t, i}\{d1{z, k, t, i}, d1{z, k, t, j}};D1 {z, k, t, i} = D1 {z, k, t, i} \ {d1 {z, k, t, i}, d1 {z, k, t, j}}; вычисляютcalculate t=t+1;t = t + 1; вычисляют мощность множества векторов D1calculate the power of the set of vectors D1 |D1{z, k, t=0, i}|;| D1 {z, k, t = 0, i} |; переходят к выполнению этапа А2;proceed to stage A2; (A3) временно сохраняют множество DTMP векторов (d1{z, k, t, i}, d1{z, k, t, j}) и множества векторов D2{z, k, t, i} и D3{z, k, t, i};(A3) temporarily store the set of DTMP vectors (d1 {z, k, t, i}, d1 {z, k, t, j}) and the sets of vectors D2 {z, k, t, i} and D3 {z, k , t, i}; вычисляютcalculate kp=2k,kp = 2k, kν=2k+1;kν = 2k + 1; если выполняется соотношениеif the relation holds |D3{z, k=kν, t, i}|<2,| D3 {z, k = kν, t, i} | <2, то переходят к выполнению этапа А4;then proceed to step A4; вычисляютcalculate k=kν;k = kν; присваивают элементам множества D1{k} значения элементов множества D3{kν}assign to the elements of the set D1 {k} the values of the elements of the set D3 {kν} d1[z, k, t, i}=d3 {z, kν, t, i};d1 [z, k, t, i} = d3 {z, kν, t, i}; вычисляютcalculate kt=0;kt = 0; переходят к выполнению этапа А1;proceed to stage A1; (А4) если выполняется соотношение(A4) if the relation holds |D2{z, k=kp, t, i}|<2,| D2 {z, k = kp, t, i} | <2, то переходят к выполнению этапа А6;then proceed to step A6; вычисляютcalculate k=kp,k = kp kt=1;kt = 1; присваивают элементам множества D1{z, k, t, i} значения элементов множества D2{z, kp, t, i}assign to the elements of the set D1 {z, k, t, i} the values of the elements of the set D2 {z, kp, t, i} d1{z, k, t, i}=d2{z, kp, t, i};d1 {z, k, t, i} = d2 {z, kp, t, i}; переходят к выполнению этапа А1;proceed to stage A1; (А5) если kt=1, то переходят к выполнению этапа А6, иначе переходят к выполнению этапа А4;(A5) if kt = 1, then go to step A6, otherwise go to step A4; (А6) получают результирующую логическую функцию, выполняя следующие действия:(A6) receive the resulting logical function by performing the following steps: вычисляютcalculate k=1;k is 1; формируют вспомогательный вектор kf(n), изначально имеющий нулевые элементы;form an auxiliary vector kf (n), initially having zero elements; (С1) если kf(k)=1, то переходят к выполнению этапа С2;(C1) if kf (k) = 1, then proceed to step C2; вычисляютcalculate k=2k+1;k = 2k + 1; вычисляют количество векторов m в итерации k;calculate the number of vectors m in iteration k; если m≠0, то переходят к выполнению этапа С1;if m ≠ 0, then proceed to step C1; вычисляютcalculate k=(k-1)/2;k = (k-1) / 2; переходят к выполнению этапа С3;proceed to step C3; (С2) если k является четным, то(C2) if k is even, then вычисляютcalculate k=k/2;k = k / 2; переходят к выполнению этапа С3;proceed to step C3; вычисляютcalculate k=k-1;k = k-1; еслиif k=0,k = 0, то переходят к выполнению этапа С7, иначе - переходят к выполнению этапа С1;then proceed to the implementation of step C7, otherwise - proceed to the implementation of step C1; (С3) вычисляют количество векторов m в итерации k;(C3) calculate the number of vectors m in iteration k; если m=1, тоif m = 1, then формируют схему для вектора d1{z, k, t, i};form a circuit for the vector d1 {z, k, t, i}; переходят к выполнению этапа С6;proceed to step C6; вычисляютcalculate t=1;t is 1; (С4) если t>m/2, то переходят к выполнению этапа С6;(C4) if t> m / 2, then proceed to step C6; вычисляют количество векторов m1 в итерации 2k+1;calculate the number of vectors m 1 in iteration 2k + 1; если m1=0, тоif m 1 = 0, then формируют схему для вектора d1{z, k, t, i};form a circuit for the vector d1 {z, k, t, i}; формируют схему для d1{z, k, t, j};form a circuit for d1 {z, k, t, j}; переходят к выполнению этапа С5;proceed to step C5; формируют схему для вектора d1{z, k, t, i} из полученных схем для векторов d1{z=t, 2k, t, i} и d1{z=t, 2k+1, t, i=t};form a circuit for the vector d1 {z, k, t, i} from the obtained schemes for the vectors d1 {z = t, 2k, t, i} and d1 {z = t, 2k + 1, t, i = t}; формируют схему для вектора d1{z, k, t, j} из полученных схем d1{z=t, 2k, t, j} и d1{z=t, 2k+1, t, i=t};form a circuit for the vector d1 {z, k, t, j} from the obtained schemes d1 {z = t, 2k, t, j} and d1 {z = t, 2k + 1, t, i = t}; (С5) вычисляют(C5) calculate t=t+1;t = t + 1; переходят к выполнению этапа С4;proceed to step C4; (С6) вычисляют(C6) calculate kf(k)=1;kf (k) = 1; переходят к выполнению этапа С1;proceed to stage C1; (С7) формируют на основе результирующей логической схемы электронную схему для реализации S-блока. (C7) form, based on the resulting logic circuitry, an electronic circuitry for implementing the S-block.
RU2014112547/08A 2014-04-02 2014-04-02 Method of forming s-blocks with minimum number of logic elements RU2572423C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014112547/08A RU2572423C2 (en) 2014-04-02 2014-04-02 Method of forming s-blocks with minimum number of logic elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014112547/08A RU2572423C2 (en) 2014-04-02 2014-04-02 Method of forming s-blocks with minimum number of logic elements

Publications (2)

Publication Number Publication Date
RU2014112547A true RU2014112547A (en) 2015-10-10
RU2572423C2 RU2572423C2 (en) 2016-01-10

Family

ID=54289346

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014112547/08A RU2572423C2 (en) 2014-04-02 2014-04-02 Method of forming s-blocks with minimum number of logic elements

Country Status (1)

Country Link
RU (1) RU2572423C2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5050454B2 (en) * 2006-09-01 2012-10-17 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
RU2498416C1 (en) * 2012-05-15 2013-11-10 Закрытое акционерное общество "Современные беспроводные технологии" Encryption device defined in standard gost 28147-89
RU120303U1 (en) * 2012-06-04 2012-09-10 Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" DEVICE FOR TRANSFORMING DATA BLOCKS DURING ENCRYPTION

Also Published As

Publication number Publication date
RU2572423C2 (en) 2016-01-10

Similar Documents

Publication Publication Date Title
EP4336411A3 (en) Performing kernel striding in hardware
JP2017533458A5 (en)
Sum The hit problem for the polynomial algebra of four variables
RU2017122260A (en) ELECTRONIC COMPUTER DEVICE FOR PERFORMANCE OF MASKED ARITHMETIC ACTION
Araci et al. Symmetric identities involving q-Frobenius-Euler polynomials under Sym (5)
Yazici Operator splitting methods for differential equations
CN104506316A (en) Point multiplication operation method based on SM2 base points
US11257399B2 (en) Decoding apparatus, decoding method, and program
RU2014112547A (en) METHOD FOR FORMING S-BLOCKS WITH A MINIMUM NUMBER OF LOGIC ELEMENTS
CN110990776B (en) Coding distributed computing method, device, computer equipment and storage medium
RU2017126055A (en) ELECTRONIC COMPUTER DEVICE
Carić et al. On the number of equivalence classes of invertible Boolean functions under action of permutation of variables on domain and range
Satoh First cohomologies and the Johnson homomorphisms of the automorphism group of a free group
Farrokhi Factorization numbers of finite abelian groups
Belaid et al. Stability of a generalization of Wilson’s equation
Ali et al. A Total norm of τ-adic Non-Adjacent Form Occuring among all Element of Z (τ): An Alternative Formula
Elhamdadi et al. Foundations of the colored Jones polynomial of singular knots
RU2549129C1 (en) Primality test method
Winkler The algorithmic structure of the finite stopping time behavior of the 3x+ 1 function
KR102132935B1 (en) Method and apparatus for finite field multiplication
RU2018124780A (en) COMPUTER DEVICE AND METHOD
RU2015121014A (en) The method of forming the S-block
Merca The bisectional pentagonal number theorem
Diaconu Equivariant Euler characteristics of $\overline {\mathscr {M}} _ {g, n} $
Sheikh The Davenport constant of finite abelian groups