RU2417405C2 - Самопроверяемый модулярный вычислитель систем логических функций - Google Patents

Самопроверяемый модулярный вычислитель систем логических функций

Info

Publication number
RU2417405C2
RU2417405C2 RU2009121955A RU2009121955A RU2417405C2 RU 2417405 C2 RU2417405 C2 RU 2417405C2 RU 2009121955 A RU2009121955 A RU 2009121955A RU 2009121955 A RU2009121955 A RU 2009121955A RU 2417405 C2 RU2417405 C2 RU 2417405C2
Authority
RU
Grant status
Grant
Patent type
Prior art keywords
outputs
inputs
connected
memory
block
Prior art date
Application number
RU2009121955A
Other languages
English (en)
Other versions
RU2009121955A (ru )
Inventor
Сергей Михайлович Сульгин (RU)
Сергей Михайлович Сульгин
Олег Анатольевич Финько (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
Grant date

Links

Images

Abstract

Устройство относится к вычислительной технике и может быть использовано для достоверной параллельной реализации систем логических функций в средствах криптографической защиты информации, искусственного интеллекта, системах автоматизированного проектирования интегральных схем. Техническим результатом является расширение функциональных возможностей устройства за счет обеспечения контроля ошибок логических вычислений. Устройство содержит блок конъюнкций, два блока памяти, два сумматора, блок вычисления остатка по модулю, элемент ИЛИ-НЕ, элемент И, регистр памяти. 2 ил., 5 табл.

Description

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

Известно вычислительное устройство, включающее в себя сумматор, выход которого подключен к второму входу регистра результата, регистр для хранения булевых переменных, выход которого подключен к блоку конъюнкций, регистры для фиксации очередных строк матриц, описывающих структуру соответствующей конъюнкции, выходы которых подключены также к блоку конъюнкций, выход которого подключен к третьему входу регистра результата, выход которого является шиной выдачи результата вычислений (Малюгин В.Д. Параллельные логические вычисления посредством арифметических полиномов. / В.Д.Малюгин - М.: Наука. Физматлит, 1997. - с.156-157).

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

Наиболее близким по сущности технического решения к заявляемому устройству является вычислительное устройство, содержащее блок конъюнкций, входы которого являются шиной подачи значений булевых переменных, выходы которого подключены к блоку памяти, выходы которого подключены к входам коммутатора, выходы которого подключены к многоместному сумматору, выходы которого являются выходами устройства выдачи результата вычислений (Малюгин В.Д. Параллельные логические вычисления посредством арифметических полиномов. / В.Д.Малюгин - М.: Наука. Физматлит, 1997. - с.154-155).

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

Цель изобретения - расширение функциональных возможностей устройства за счет обеспечения контроля ошибок логических вычислений.

Поставленная цель достигается тем, что в самопроверяемом модулярном вычислителе систем логических функций, содержащем блок конъюнкций, входы которого являются входами устройства для подачи n булевых переменных, выходы подключены к первому блоку памяти, предназначенному для хранения коэффициентов первого полинома избыточной модулярной числовой нормальной формы, первый сумматор, дополнительно введены второй сумматор, блок вычисления остатка по модулю, элемент ИЛИ-НЕ, элемент И, регистр памяти и второй блок памяти, входы которого соединены с выходами блока конъюнкций, при этом второй блок памяти предназначен для хранения коэффициентов второго полинома избыточной модулярной числовой нормальной формы, выходы первого блока памяти подключены к входам первого сумматора, выходы которого подключены к (s+1)-му, (s+2)-му, …, (d+s)-му входам (старшие разряды слева, d - количество реализуемых булевых функций, составляющих информационные разряды разделимого AN-кода, s - количество избыточных булевых функций, соответствующих избыточным разрядам разделимого AN-кода) блока вычисления остатка по модулю и информационным входам регистра памяти, выходы которого являются выходами устройства выдачи значений d булевых функций, выходы второго блока памяти подключены к входам второго сумматора, выходы которого подключены к 1-му, 2-му, …, s-му входам (старшие разряды слева) блока вычисления остатка по модулю, выходы которого подключены к входам элемента ИЛИ-НЕ, выход которого подключен к первому входу элемента И, второй вход которого соединен с входом подачи синхроимпульсов устройства, а выход подключен к синхровходу регистра памяти.

Структурная схема предлагаемого устройства представлена на фиг.1.

Пусть дана система булевых функций (СБФ): f1(Х), f2(X), …, fd(X) от n булевых переменных X=x1, x2, …, xn (xi∈{0,1}, i=1, 2, …, n):

Figure 00000001

где F(X) - значение, принимаемое d-выходной БФ.

Таблица истинности реализуемой СБФ имеет вид:

где

Figure 00000002
- значения, принимаемые j-й БФ на i-м наборе переменных, Y(i) - целые неотрицательные числа, записанные в двоичной системе счисления:

Figure 00000003

Известно, что СБФ можно однозначно представить в модулярной числовой нормальной форме (Финько О.А. Реализация систем булевых функций большой размерности методами модулярной арифметики. / Автоматика и телемеханика, 2004, №6. - с.37-60); (Финько, О.А. Поисковые методы гибкой параллельной достоверной реализации логических функций криптографических

Таблица 1
Таблица истинности заданной СБФ
xn xn-1 x1 Yd Yd-1 Y1 Y
0 0 0
Figure 00000004
Figure 00000005
Figure 00000006
Y(0)
0 0 1
Figure 00000007
Figure 00000008
Figure 00000009
Y(1)
Figure 00000010
Figure 00000011
Figure 00000011
Figure 00000011
Figure 00000011
Figure 00000011
Figure 00000011
1 1 1
Figure 00000012
Figure 00000013
Figure 00000014
Figure 00000015

алгоритмов в кн. Криптографическая защита информации: коллективная монография под ред. Е.М.Сухарева. - М.: Радиотехника, 2007. - с.97-118):

Figure 00000016

Figure 00000017
(iu=∈0, 1);
Figure 00000018
,

где 2d - значение модуля, d - количество реализуемых булевых функций,

Figure 00000019
- коэффициенты полинома.

Коэффициенты ωi (i=0,1,…,2n-1) полинома (2) находятся матричным способом:

Figure 00000020

Figure 00000021

где

Figure 00000022
и
Figure 00000023
- матрицы прямого и инверсного арифметического преобразования; Y - вектор истинности значений функции F(X) и W - вектор коэффициентов модулярной формы арифметического полинома W(X),
Figure 00000024
, T - символ транспонирования.

Матрица

Figure 00000025
является n-й кронекеровской степенью
Figure 00000026
базовой матрицы
Figure 00000027
;
Figure 00000028
.

Преобразования (3) и (4) являются модулярной формой прямого и обратного матричного числового преобразования.

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

Для обеспечения контроля логических вычислений дополним реализуемую СБФ f1(X), f2(X), …, fd(X) избыточными булевыми функциями

Figure 00000029
, …,
Figure 00000030
, получив избыточную систему fd(X), …, fs+1(X),
Figure 00000031
, …,
Figure 00000032
, где s - количество избыточных булевых функций. Так же как и для СБФ f1(X), f2(X), …, fd(X), значения которых интерпретируются в виде целых неотрицательных чисел, записанных в двоичной системе счисления (1), избыточная СБФ
Figure 00000033
, …,
Figure 00000034
представляется как:

Figure 00000035
,

где

Figure 00000036
- значения, принимаемые j-й БФ на i-м наборе переменных, Y*(i) - целые неотрицательные числа, записанные в двоичной системе счисления.

Рассмотрим полученную избыточную СБФ по правилу задания разделимого AN-кода (Дадаев Ю.Г. Арифметические коды, исправляющие ошибки. / Ю.Г.Дадаев - М: Советское радио, 1969. - 168 с.), где кодовое слово R, формируется из выражения:

Figure 00000037

Y - исходное число, здесь - вектор значений реализуемых БФ, I=2aY - информационная часть кода,

Figure 00000038
- проверочные символы кодовой комбинации, 2 - основание системы счисления, a - количество двоичных разрядов, необходимое для записи чисел, не превосходящих А - генератора кода, получим:

Figure 00000039
,
Figure 00000040
.

Отсюда:

Figure 00000041

здесь d - количество информационных символов кодового слова (количество реализуемых булевых функций), s - количество проверочных символов (количество избыточных булевых функций), причем количество проверочных символов зависит от выбора численного значения генератора и определяется следующим образом:

Figure 00000042
, s=l-d,

где l - общая длина кода,

Figure 00000043
- целая часть числа •.

Таким образом, требуется реализовать таблицу истинности, представленную в табл.2.

Используя преобразования (3), (4), построим полиномы избыточной модулярной числовой AN-формы:

Figure 00000044

Figure 00000045
,

Figure 00000046

где V - вектор коэффициентов информационного модулярного полинома (8),

Figure 00000047
(i=0, 1, …, 2n-1).

Figure 00000048

Figure 00000049
,

Таблица 2
Таблица истинности для избыточной СБФ
Булевы переменные Избыточные булевы функции
информационные проверочные
xn x1 Yd Yd-1 Ys+1
Figure 00000050
Figure 00000051
R
0 0
Figure 00000052
Figure 00000053
Figure 00000054
Figure 00000055
Figure 00000056
R(0)
0 1
Figure 00000057
Figure 00000058
Figure 00000059
Figure 00000060
Figure 00000061
R(1)
0 0
Figure 00000062
Figure 00000063
Figure 00000064
Figure 00000065
Figure 00000066
R(2)
0 1
Figure 00000067
Figure 00000068
Figure 00000069
Figure 00000070
Figure 00000071
R(3)
Figure 00000010
Figure 00000010
Figure 00000010
Figure 00000010
Figure 00000010
Figure 00000010
Figure 00000010
Figure 00000010
1 1
Figure 00000072
Figure 00000073
Figure 00000074
Figure 00000075
Figure 00000076
Figure 00000077

Figure 00000078

где K - вектор коэффициентов проверочного модулярного полинома (10) и

Figure 00000079
(i=0, 1, …, 2n-1).

Как известно, выбор генератора А арифметического AN-кода, не только определяет арифметическое расстояние кода D, но и его корректирующие свойства. Так код с D=2 гарантировано обнаруживает онократную ошибку (в одной булевой функции).

В процессе реализации систем БФ выполняется классическая процедура контроля ошибок в соответствии со свойствами и выбранными параметрами AN-кода.

Принцип контроля заключается в выполнении следующего правила:

Figure 00000080

что соответствует правильному результату, а выражение

Figure 00000081
,

являются признаком ошибки вычислений.

ПРИМЕР

Пусть дана таблица истинности СБФ, представленная в табл.3.

Полином имеет вид:

Figure 00000082
.

Применив арифметический разделимый AN-код с А=3, построим избыточную СБФ (табл.4).

Таблица 3
Пример таблицы истинности СБФ
x2 x1 Y2 Y1 Y
0 0 0 0 0
0 1 1 1 3
1 0 1 1 3
1 1 1 0 2

Таблица 4
Пример таблицы истинности избыточных СБФ, реализуемой полиномами V(X) и K(X)
x2 x1 V(X) K(X) R
Y4 Y3
Figure 00000083
Figure 00000084
0 0 0 0 0 0 0
0 1 1 1 0 0 12
1 0 1 1 0 0 12
1 1 1 0 0 1 9

В соответствии с (7):

Figure 00000085

где смысл обозначения

Figure 00000086
аналогичен обозначению
Figure 00000087
. Таким образом получим полином (8):
Figure 00000088
.

Используя преобразования (9) построим полином (10):

Figure 00000089
,

Figure 00000090
.

Пример обнаружения однократной ошибки (звездочкой * обозначается ошибка) продемонстрируем на таблице 5.

Таблица 5
Y4 Y3 Y2 Y1 R
Figure 00000091
результат контроля
0 0 0 0 0
Figure 00000092
верно
0 0 0 1* 1
Figure 00000093
ошибка
0 0 1* 0 2
Figure 00000094
ошибка
0 1* 0 0 4
Figure 00000095
ошибка
1* 0 0 0 8
Figure 00000096
ошибка
1 1 0 0 12
Figure 00000097
верно
1 1 0 1* 13
Figure 00000098
ошибка
1 1 1* 0 14
Figure 00000099
ошибка

Y4 Y3 Y2 Y1 R
Figure 00000100
результат контроля
1 0* 0 0 8
Figure 00000101
ошибка
0* 1 0 0 4
Figure 00000102
ошибка
1 1 0 0 12
Figure 00000103
верно
1 1 0 1* 13
Figure 00000104
ошибка
1 1 1* 0 14
Figure 00000105
ошибка
1 0* 0 0 8
Figure 00000106
ошибка
0* 1 0 0 4
Figure 00000107
ошибка
1 0 0 1 9
Figure 00000108
верно
1 0 0 0* 8
Figure 00000109
ошибка
1 0 1* 1 11
Figure 00000110
ошибка
1 1* 0 1 13
Figure 00000111
ошибка
0* 0 0 1 1
Figure 00000112
ошибка

Предлагаемое устройство включает: входы 8.1, …, 8.n подачи значений булевых переменных, блок 1 конъюнкций, блоки памяти 2.1 и 2.2, сумматоры 3.1 и 3.2, блок 4 вычисления остатка по модулю, элемент ИЛИ-НЕ 5, регистр памяти 6, элемент И 7, выходы 9.1, …, 9.d выдачи значений булевых функций: f1(X), f2(X), …, fd(X), вход 10 шины подачи синхроимпульсов. Блок 1 конъюнкций предназначен для вычисления конъюнкций:

Figure 00000113
, где
Figure 00000114
(iu∈0, 1);

Figure 00000115

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

Входы 8.1, …, 8.n подачи значений булевых переменных x1, x2, …, xn являются входами блока конъюнкций 1, выходы которого подключены к входам блоков 2.1 и 2.2 памяти, выходы блока памяти 2.1 подключены к сумматору 3.1, выходы которого подключены к (s+1)-му, (s+2)-му, …, (d+s)-му входам (старшие разряды слева) блока 4 вычисления остатка по модулю и информационным входам регистра памяти 6, выходы которого являются выходами устройства выдачи значений d булевых функций: f1(X), f2(X), …, fd(X), выходы блока памяти 2.2 подключены к входам сумматора 3.2, выходы которого подключены к 1-му, 2-му, …, s-му входам блока 4 вычисления остатка по модулю, выходы которого подключены ко входам элемента 5 ИЛИ-НЕ, выход которого подключен к первому входу элемента 7 И, второй вход которого соединен с входом 10 подчи синхроимпульсов устройства, а выход 7 подключен к синхровходу регистра памяти 6.

Предлагаемое устройство работает следующим образом.

В исходном состоянии в блоки 2.1 и 2.2 памяти занесены коэффициенты:

Figure 00000116
;
Figure 00000117
модулярных полиномов (8) и (10) соответственно, полученных в результате преобразований (7), (8), регистр 6 памяти обнулен. В момент времени, соответствующий началу преобразования, на входы 8.1, …, 8.n блока конъюнкций 1 поступают значения булевых переменных x1, x2, …, xn. На выходе блока 1 конъюнкций образуются результаты вычисления конъюнкций
Figure 00000118
, которые поступают на входы блоков 2.1 и 2.2 памяти. С выходов блоков 2.1 и 2.2 памяти на сумматоры 3.1 и 3.2 поступают произведения
Figure 00000119
, где i=0, 1, …, 2n-1 и
Figure 00000120
, где i=0, 1, …, 2n-1. С выходов сумматора 3.1 на (s+1)-ый, (s+2)-ой, …, (d+s)-ый входы (старшие разряды слева) блока 4 вычисления остатка по модулю и на информационные входы регистра памяти 6 поступает числовой результат вычисления полинома V(X), с выходов сумматора 3.2 на 1-ый, 2-ой, …, s-ый входы (старшие разряды слева) блока 4 вычисления остатка по модулю поступает числовой результат вычисления полинома K(Х). С выходов блока 4 вычисления остатка по модулю на входы элемента ИЛИ-НЕ 5 поступает результат вычисления
Figure 00000121
. На выходе элемента 5 ИЛИ-НЕ образуется сигнал «1» при выполнении равенства (11) (ошибки нет) и «0» в противном случае. Синхроимпульс с входа 10 устройства через элемент 7 И поступает на синхровход регистра 6 памяти при отсутствии ошибок вычислений в соответствии с (11). Таким образом при отсутствии ошибок вычислений в регистр 6 памяти записывается численный результат вычисления полинома V(X), интерпритируемый как результат реализации f1(X), f2(X), …, fd(X). При этом результат реализации СБФ соответствует размещению от младшего разряда справа (f1(X)) к старшим разрядам слева (fd(X)).

Claims (1)

  1. Самопроверяемый модулярный вычислитель систем логических функций, содержащий блок конъюнкций, входы которого являются входами устройства для подачи n булевых переменных, выходы которого подключены к первому блоку памяти, предназначенному для хранения коэффициентов первого полинома избыточной модулярной числовой нормальной формы, первый сумматор, отличающийся тем, что дополнительно введены второй блок памяти, входы которого соединены с выходами блока конъюнкций, при этом второй блок памяти предназначен для хранения коэффициентов второго полинома избыточной модулярной числовой нормальной формы, выходы первого блока памяти подключены к входам первого сумматора, выходы которого подключены к (s+1)-му, (s+2)-му, …, (d+s)-му входам (d - количество реализуемых булевых функций, составляющих информационные разряды разделимого AN-кода, s - количество избыточных булевых функций, соответствующих избыточным разрядам разделимого AN-кода) блока вычисления остатка по модулю и информационным входам регистра памяти, выходы которого являются выходами устройства выдачи значений d булевых функций, выходы второго блока памяти подключены к входам второго сумматора, выходы которого подключены к 1-му, 2-му, …, s-му входам блока вычисления остатка по модулю, выходы которого подключены к входам элемента ИЛИ-НЕ, выход которого подключен к первому входу элемента И, второй вход которого соединен с входом подачи синхроимпульсов устройства, а выход подключен к синхровходу регистра памяти.
RU2009121955A 2009-06-08 2009-06-08 Самопроверяемый модулярный вычислитель систем логических функций RU2417405C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2009121955A RU2417405C2 (ru) 2009-06-08 2009-06-08 Самопроверяемый модулярный вычислитель систем логических функций

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2009121955A RU2417405C2 (ru) 2009-06-08 2009-06-08 Самопроверяемый модулярный вычислитель систем логических функций

Publications (2)

Publication Number Publication Date
RU2009121955A true RU2009121955A (ru) 2010-12-20
RU2417405C2 true RU2417405C2 (ru) 2011-04-27

Family

ID=44056225

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009121955A RU2417405C2 (ru) 2009-06-08 2009-06-08 Самопроверяемый модулярный вычислитель систем логических функций

Country Status (1)

Country Link
RU (1) RU2417405C2 (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2461868C1 (ru) * 2011-10-03 2012-09-20 Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" (г. Санкт-Петербург) Министерства обороны Российской Федерации Арифметический вычислитель систем булевых функций
RU2586574C1 (ru) * 2015-06-26 2016-06-10 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерации Полиномиальный модулярный вычислитель систем булевых функций с обнаружением ошибок
RU2586575C1 (ru) * 2015-06-03 2016-06-10 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерации Модулярный полиномиальный вычислитель систем булевых функций

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2461868C1 (ru) * 2011-10-03 2012-09-20 Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" (г. Санкт-Петербург) Министерства обороны Российской Федерации Арифметический вычислитель систем булевых функций
RU2586575C1 (ru) * 2015-06-03 2016-06-10 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерации Модулярный полиномиальный вычислитель систем булевых функций
RU2586574C1 (ru) * 2015-06-26 2016-06-10 Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерации Полиномиальный модулярный вычислитель систем булевых функций с обнаружением ошибок

Also Published As

Publication number Publication date Type
RU2009121955A (ru) 2010-12-20 application

Similar Documents

Publication Publication Date Title
US6029187A (en) Fast regular multiplier architecture
US4623982A (en) Conditional carry techniques for digital processors
US5289397A (en) High-speed modulo exponentiator device
US7791962B2 (en) Semiconductor device and semiconductor signal processing apparatus
US7277540B1 (en) Arithmetic method and apparatus and crypto processing apparatus for performing multiple types of cryptography
Yang et al. A new RSA cryptosystem hardware design based on Montgomery's algorithm
US4928280A (en) Fast processor for multi-bit error correction codes
US5793659A (en) Method of modular reduction and modular reduction circuit
US20020152444A1 (en) Multi-cycle symbol level error correction and memory system
US20100312812A1 (en) Decimal Floating-Point Adder with Leading Zero Anticipation
US20030110196A1 (en) Galois field multiply/ multiply-add/multiply accumulate
US6327690B1 (en) Integrated reed-solomon error correction code encoder and syndrome generator
US6820105B2 (en) Accelerated montgomery exponentiation using plural multipliers
Bu et al. A design methodology for fixed-size systolic arrays
GB2365636A (en) Parallel counter and multiplication logic circuit
EP0566498A2 (en) Digital signature device and process
US5740095A (en) Parallel multiplication logic circuit
Dean et al. Single replicate factorial experiments in generalized cyclic designs: II. Asymmetrical arrangements
US4346451A (en) Dual moduli exponent transform type high speed multiplication system
US7046800B1 (en) Scalable methods and apparatus for Montgomery multiplication
US20030009503A1 (en) Multiplier cell and method of computing
US20040225705A1 (en) Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
Hickmann et al. A parallel IEEE P754 decimal floating-point multiplier
US5734599A (en) Performing a population count using multiplication
US20110153701A1 (en) Implementation of arbitrary galois field arithmetic on a programmable processor

Legal Events

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

Effective date: 20110609