Устройство хранения данных с системой шифрования
Изобретение относится к устройству хранения данных с системой шифрования. Технический результат заключается в повышении защищенности сохраненных данных за счет их шифрования. Устройство содержит запоминающее устройство, генератор ключей шифрования, шифрователь, дешифрователь, устройство управления, генератор ключей дешифрования, причем первый вход шифрователя соединен с входом всего устройства, второй вход шифрователя подключен к выходу генератора ключей шифрования, выход шифрователя соединен с первым входом запоминающего устройства, второй вход запоминающего устройства подключен к первому выходу устройству управления, второй выход устройства управления соединен с третьим входом запоминающего устройства, выход запоминающего устройства соединен со вторым входом дешифрователя, первый вход дешифрователя соединен с выходом генератора ключей дешифрования, выход дешифрователя подключен к выходу всего устройства, при этом шифрователь и дешифрователь формируют сигналы исходя из определенных условий. 5 з.п. ф-лы, 4 ил.
Область техники
Изобретение относится к средствам вычислительной техники, в частности к устройствам хранения, в которых применяется шифрование.
Уровень техники
Известно устройство хранения данных [1], содержащее блок управления, блок памяти, блок коммутации и блок защиты ключевых цепей и обеспечивающее надежность и безопасность хранения данных при воздействии опасного внешнего воздействия (статического электричества). Недостатком аналога является отсутствия системы шифрования.
В качестве аналога рассмотрено устройство шифрования [2, с. 51, Рис. 2.5], в котором входные последовательности символов преобразуются в выходные последовательности в соответствии с ключом преобразования. Недостатком устройства является отсутствие запоминающего устройства (ЗУ) для хранения данных.
Прототипом выбрано устройство [3], содержащее ЗУ (энергонезависимого типа), линию связи (указана проводная или беспроводная секция приема/передачи данных), генератор случайных чисел, являющихся ключами шифрования/восстановления переданных данных, выполненный в виде одной/нескольких интегральных схем либо "смарт-карты", главный блок управления, представляющий собой программируемую интегральную схему, основанную на программном обеспечении, загружаемом специальным образом. Недостатком является отсутствие возможности варьирования значений ключей шифрования в широких пределах без дополнительных энергозатрат и увеличения габаритов.
Краткое изложение сущности и состава предлагаемого устройства
На вход заявляемого устройства хранения и передачи данных с системой шифрования (УХДШ) подаются входные данные Хвх, состоящие их множества байтов, каждый из которых является совокупностью бит (комбинации логических единиц "1" и нулей "0"). Задача устройства состоит в сохранении входных данных в защищенном от несанкционированной корректировки виде и восстановлении данных в необходимом для пользователя месте в требуемый момент времени, так чтобы в результате Хвых = Хвх. Каждому байту соответствует числовое значение и некоторый символ выбранной системы кодирования данных. Перед запоминанием чисел, соответствующих входным байтам, осуществляется изменение их числовых значений (шифрование) на новые величины в соответствии с выбранным пользователем правилом (ключом шифрования). В работе [2] упоминаются методы перенумерования символов. Шифрование путем перенумерования осуществляется благодаря управляющим сигналам, являющимся результатом сравнения байтов выбранной (эталонной) системы кодирования с ключами шифрования. Байты с новыми, перенумерованными значениями сохраняются в ЗУ. Задача восстановления данных в первоначальном виде проводится путем обратной замены числовых значений байтов, сохраненных в ЗУ, на первоначальные номера (дешифрование) согласно правилу преобразования номеров байтов (ключу дешифрования), задаваемому пользователем. Шифрование и дешифрование осуществляются в шифрователе и дешифрователе. Таким образом, входные данные могут быть защищены, сохранены и восстановлены.
При передаче данных в информатике и компьютерной технике каждый байт соответствует определенному символу системы кодирования. При использовании известной системы кодирования ASCII (American Standard Code for Information Interchange-стандартный код информационного обмена), состоящей из g1=256 символов. Символам соответствуют числовые значения, изменяющиеся от 0 до 255, которые, как известно, представляются набором из восьми бит, составляющих байт.
В общем случае для системы кодирования из g1 символов требуется использовать g2=log2 g1 (округление в большую сторону до ближайшего целого числа) бит, для удобства изложения наборы из g2 бит, не обязательно равные восьми, названы блоками.
Некоторые термины, использованные для упрощения описания.
Блок - набор конечного числа бит данных, блок из восьми бит является байтом.
L - данные - зашифрованные байты входных данных, перенумерованные в шифрователе в соответствии с ключами шифрования, обозначенными символом L.
Запись данных - занесение в ячейки ЗУ бит зашифрованных блоков (L - данных).
Восстановление данных - преобразование зашифрованных блоков в вид, который имели данные до шифрования на входе заявленного устройства.
Линганум - установленная пользователем функция (правило, формула, таблица), определяющая взаимно-однозначное соответствие между множествами чисел (0; 1; …; g1-1) и множеством символов выбранной системы кодирования. ASCII - частный случай линганума.
Перенумерование блоков (байтов) - изменение порядка следования элементов, например, бит логических единиц и нулей, либо положительных и отрицательных логических единиц, входящих в блок (байт) так, чтобы числовое значение, определяемое элементами блока (байта), стало равным назначенному числу (ключу).
Числовые значения блоков определяются последовательностью бит, которые рассматриваются в качестве цифр двоичной системы исчисления, причем, если элементами выбраны положительные и отрицательные логические единицы, то при подсчете числовых значений блока отрицательные логические единицы заменяются на нули.
Сортировка - операция преобразования одной конечной последовательности числовых значений в другую так, что индексы порядковых номеров элементов исходной последовательности уменьшаются на единицу и меняются местами с значениями элементов этой последовательности, порядковые номера новой числовой последовательности увеличиваются на единицу и элементы полученной последовательности со своими измененными порядковыми номерами расставляются в порядке возрастания этих номеров.
Сортировка используется для определения линганума восстановления данных и ключей дешифрования, исходя из вида линганума записи и ключей шифрования, что позволяет при дешифровании использовать те же операции и схемы, что и при шифровании.
Порядок сортировки определяется тем, что величины первоначальной последовательности надо поменять на новые, а также учесть, что эти величины и их индексы различаются на единицу (например, в ASCII индексы варьируются по порядку (1, 2, 3, …), а числовые значения символов изменяются по возрастанию (0, 1, 2, …)). Для этого величины индексов первоначальной последовательности перед указанной заменой уменьшаются на единицу, а индексы новой последовательности должны быть увеличены на единицу.
Пример проведения сортировки: задана первоначальная последовательность Т, записанная с учетом порядкового номера и значения элементов, с использованием знака соответствия "→". То есть (порядковый номер (первоначальное значение → новое значение)): 1(0→5); 2(1→0); 3(2→3); 4(3→2); 5(4→1); 6(5→4). Возможна иная запись: =(51; 02; 33; 24; 15; 46). Сортировка для определения искомой последовательности : уменьшение индекса порядкового номера на единицу - (50; 01; 32; 23; 14; 45); замена местами индексов и значений - (05; 10; 23; 32; 41; 54); увеличение индексов новой последовательности на единицу - (06; 11; 24; 33; 42; 55); расстановка элементов в порядке возрастания индексов - = (11; 42; 33; 24; 55; 06). Можно переписать это через знак соответствия для проведения проверки: 1(0→1); 2(1→4); 3(2→3); 4(3→2); 5(4→5); 6(5→0). Видна однозначная связь полученного результата с первоначальной последовательностью, представленной выше через знак соответствия, перенумерования "→".
Представление операции шифрования путем перенумерования байтов.
Рассмотрен вариант, когда блоки являются байтам. Шифрование проводится путем замены числовых значений байтов, то есть способом перенумерования. Обозначено:
последовательность значений линганума записи данных в двоичном и десятичном представлении чисел (выписаны первые два и последний байты), каждое значение в скобках при десятичном представлении является одним из целых положительных чисел от 0 до (g1-1), используемым при составлении этой последовательности лишь однажды (g1 - количество символов в системе кодирования данных, например, g1=256);
для двоичной системы представления Li, j задает i-й бит j-го байта (принимают значения логических "1" или "0"). Значения L устанавливают сигналы, используемые в качестве ключей шифрования.
входные данные в двоичной и десятичной системе (записаны лишь первые два байта);
данные после шифрования в двоичной и десятичной системах (записаны только первые два байта);
i, j - индексы нумерации бит и байтов.
При табличной записи значений Xi, j и индекс j опускается, его роль выполняют номера строк таблицы. Перенумерование байтов (2) в (3) осуществляется в шифрователе (перед записью в ЗУ) и в дешифрователе (при восстановлении данных) путем выполнения операции проверки выполнимости определенных условий и выполнении операции присвоения:
операция шифрования путем замены числовых значений,
где j=1, 2, … - индекс нумерации байтов;
Хвх j - значение j-го байта входных данных;
- значение j-го байта после шифрования;
L1; L2; Lg1 - последовательность значений ключей шифрования;
g1 - количество символов в системе кодирования данных.
Заметим, что если j>(g1-1), например, j=1000, то или или , следовательно выражение (7) применимо (важно значение, а не индекс). Выходные данные после восстановления:
выходные данные в двоичной и десятичной системах (приведены первые два байта). При восстановлении данных имеем значения, аналогичные (1):
последовательность значений линганума для восстановления данных в двоичном и десятичном представлении (выписаны первые два и последний байты), каждое значение в скобках при десятичном представлении является целым положительным числом от 0 до (g1-1), используемым при составлении этой последовательности лишь однажды, (g1 - количество символов в системе кодирования данных); для двоичной системы представления определяет i-й бит j-го байта. Этот линганум дешифрования используется в качестве ключей дешифрования.
При восстановлении данных значения из (3) преобразуются в Хвых из (5):
операции дешифрования путем замены числовых значений (перенумерования),
где j=1, 2, … - индекс нумерации байтов;
- значение j-го байта до дешифрования;
Хвых j - значение j-й байта выходных данных;
; ; …; - последовательность значений ключа дешифрования (линганума восстановления данных);
g1 - количество символов в системе кодирования данных.
Значения L в формуле (1) и L' в выражении (6) используются для установки сигналов управления работой ключей инверторов, применяемых для получения логических функций (ЛФ), которые обеспечивают перенумерование данных при шифровании и дешифровании. Такие ЛФ реализуются, например, на логических элементах [4-6]. Шифрование проводится в соответствии с ЛФ, строящейся на основании таблицы истинности. Для реализации требуемых инверсий аргументов ЛФ применяются инверторы. После формирования сигналов управления инверторами УХДШ готово к работе.
Генератор ключей шифрования формирует сигналы, соответствующие числовым значениям (Lj, j=1,2,…, g1) последовательности (1). При восстановлении данных используется сортировка, то есть последовательность (6) линганума восстановления получается после сортировки последовательности (4) линганума записи. Генератор ключей дешифрования формирует сигналы, соответствующие значениям последовательности , j=1,2,…, g1, где g1 - количество символов в избранной системе кодирования.
Для реализации указанных ранее операций с данными в заявленном УХДШ используются устройства, имеющие несколько входов либо выходов, для которых с целью удобства дальнейшего изложения введена нумерация. Шифрователь - первых вход есть вход УХДШ; второй вход тот, что соединен с выходом генератора ключей шифрования. Запоминающее устройство - первый вход тот, что соединен с выходом шифрователя; второй вход тот, что соединен с первым выходом устройства управления; третий вход тот, что соединен с вторым выходом устройства управления. Устройство управления - первый выход тот, что соединен с вторым входом запоминающего устройства; второй выход тот, что соединен с третьим входом запоминающего устройства. Дешифрователь - первый вход тот, что соединен с выходом генератора ключей дешифрования; второй вход тот, что соединен с выходом запоминающего устройства. Логическое устройство шифрования - первый вход тот, что соединен с выходом сопрягающего устройства шифрователя; второй вход тот, что соединен с выходом преобразователя ключей шифрования. Логическое устройство дешифрования - первый вход тот, что соединен с выходом преобразователя ключей дешифрования; второй вход тот, что соединен с вторым входом дешифрователя. Генератор режимов - первый выход тот, что соединен с входом генератора адресов; второй выход тот, что соединен с вторым выходом устройства управления.
Сущность изобретения
Задачей, на решение которой направлено заявляемое изобретение, является обеспечение защищенности данных от внешних воздействий при их хранении.
Поставленная задача решается за счет того, что в устройство хранения данных с системой шифрования, содержащее запоминающее устройство и генератор ключей шифрования, как новые признаки введены шифрователь, дешифрователь, устройство управления, генератор ключей дешифрования, причем
первый вход шифрователя соединен с входом всего устройства, второй вход шифрователя подключен к выходу генератора ключей шифрования, выход шифрователя соединен с первым входом запоминающего устройства, второй вход запоминающего устройства подключен к первому выходу устройству управления, второй выход устройства управления соединен с третьим входом запоминающего устройства, выход запоминающего устройства подключен к второму входу дешифрователя, выход дешифрователя является выходом всего устройства, первый вход дешифрователя соединен с выходом генератора ключей дешифрования, при этом
шифрователь формирует сигналы , где j=1,2,…, исходя из условий (4),
дешифрователь формирует сигналы Хвых j, где j=1,2,…, исходя из условий (7),
генератор ключей шифрования формирует сигналы, соответствующие элементам (1) последовательности Lj, j=1, 2,…, g1, где g1 - количество символов в системе кодирования, генератор ключей дешифрования формирует сигналы, соответствующие элементам последовательности , j=1,2,…, g1, где g1 - количество символов в системе кодирования данных, полученной так, что порядковые номера j-x элементов последовательности ключей шифрования Lj, j=1,2,…, g1 уменьшаются на единицу и меняются местами с значениями элементов этой последовательности, порядковые номера новой числовой последовательности увеличиваются на единицу и элементы полученной последовательность со своими измененными порядковыми номерами расставляются в порядке возрастания этих номеров, шифрователь содержит преобразователь ключей шифрования, логическое устройство шифрования и сопрягающее устройство шифрователя,
вход преобразователя ключей шифрования подключен к второму входу шифрователя, а выход преобразователя ключей шифрования подключен к второму входу логического устройства шифрования, первый вход логического устройства шифрования подключен к выходу сопрягающего устройства шифрователя, вход сопрягающего устройства шифрователя соединен с первым входом шифрователя и всего устройства, выход логического устройства шифрования соединен с выходом шифрователя,
устройство управления содержит генератор адресов и генератор режимов, выход генератора адресов соединен с первым выходом устройства управления, первый выход генератора режимов является вторым выходом устройства управления, второй выход генератора режимов соединен с входом генератора адресов,
дешифрователь содержит преобразователь ключей дешифрования, логическое устройство дешифрования и сопрягающее устройство дешифрователя,
вход преобразователя ключей дешифрования является первым входом дешифрователя, выход преобразователя ключей дешифрования соединен с первым входом логического устройства дешифрования, второй вход логического устройства дешифрования является вторым входом дешифрователя, выход логического устройства дешифрования связан с входом сопрягающего устройства дешифрователя, выход которого является выходом дешифрователя и всего устройства.
Представленная совокупность существенных признаков позволяет получить технический результат и достичь цели изобретения, которые заключаются в повышении защищенности сохраняемых данных за счет их шифрования и наличия у пользователя возможности самостоятельного варьирования значений ключей шифрования в широких пределах вместе с сохранением уровня энергопотребления и микроминиатюризации (без увеличения массы и габаритов).
Предложенное устройство иллюстрируется структурной схемой (фиг. 1).
Перечень фигур графического изображения
Фиг. 1 - структурная схема устройства хранения данных с системой шифрования;
Фиг. 2 - таблица двоичных значений аргументов ЛФ шифрования;
Фиг. 3 - таблица двоичных значений зашифрованных данных и ЛФ шифрования;
Фиг. 4 - таблица десятичных значений линганума записи и шифрования данных.
Сведения, подтверждающие возможность осуществления изобретения
1. Использованные логические функции, операция сортировки для проведения дешифрования. Рассмотрены ЛФ, на которых базируется работа УХДШ, подвергнута разбору применяемая при дешифровании операция сортировки.
1.1 ЛФ для логического устройства (ЛУ) шифрования
Для записи ЛФ составлена таблица истинности, в которой указаны номера символов и байтов до шифрования и после проведения этой операции на основе линганума записи. Если в таблицу истинности ввести неявно заданные значения линганума записи (1), то ЛФ в явном виде выразить невозможно. Поэтому в качестве примера дан один из возможных вариантов линганума, что позволяет записать ЛФ в явной форме. Рассмотренный пример соответствует случаю, когда блок соответствует байту.
Аргументами искомой ЛФ шифрования являются входные байты (2), а значениями функции являются зашифрованные байты (3). Размещение входных и выходных байтов в одной таблице затруднительно, поэтому использованы две таблицы. На фиг. 2 приведены значения таблицы аргументов ЛФ шифрования для выбранного в качестве примера лингамума записи. В ней отсутствуют символы системы кодирования, но даны их порядковые номера, указаны значения двоичных разрядов и десятичные значения этих двоичных чисел (нумерация по порядку следует с единицы, а величины начинаются с нуля). Например, символу "Е" соответствуют двоичное и десятичное числа 10001012=6910, порядковый номер в таблице равен 70. В первой колонке записаны номера по порядку следования, далее восемь колонок со значениями бит для всех вариантов байтов (двоичное представление числа) и в последней колонке заданы десятичные значения X10 (от 0 до 255 для g1=256).
На фиг. 3 представлена таблица значений аргументов и таблица истинности для ЛФ шифрования, которая позволяет, как показано ранее, записать операцию перевода числовых значения аргументов (фиг. 2) в определенные значения функции. Тогда для примера линганума (1) L=(Lj, j=1,2,…, 256)=(01, 12,…, 16970,…, 18485,…, 11122,…, 255256) получим: 1(0→0); 2(1→1);…; 70(69→169);…; 85(84→184);…; 122(121→11);…; 256(255→255), где ("→") - знака соответствия.
Первая колонка таблицы на фиг. 3 - номера байтов по порядку; вторая - новые десятичные значения в соответствии с заданным линганумом; 3…10 колонки - зашифрованные двоичные значения; 11…18 колонки - новые двоичные значения в соответствии с линганумом (они совпадают со значениями колонок 3…10, но выделены для удобства построения ЛФ по правилам [5, с. 31; 6, с. 18]).
Пояснение к обозначению: ЛФ шифрования есть совокупность компонент, обозначенных j, i=1,…,8; j=1,…,256, которые вместе с Xi, j индексируются по строкам и колонкам. Варьирование по индексу i осуществлено путем введения колонок для компонент ЛФ, а варьирование по j в обозначении компонент в указанной таблице фиг. 3 не показано, так как оно проводится в соответствии с известными правилами построения ЛФ. То есть зашифрованные значения данных в двоичной форме j-ой строки равны значениям компонент ,…, (индекс строк j опущен). Операция инверсии обозначена символом (…)*. На частном примере таблиц фиг. 2, 3 приведены старшие компоненты ЛФ шифрования , , которые равны:
Многоточие в суммах компонентов ЛФ означает возможное наличие других слагаемых (на фиг. 3 представлена часть строк полной таблицы для всех возможных байтов). Также составляются и другие компоненты ЛФ. Примеры выражений определяют ЛФ записи с шифрованием для любого набора аргументов (числовых величин всевозможных байтов до шифрования). Символ (*) - операция инверсии.
1.2 Операция сортировки
При восстановлении данных применяется линганум дешифрования (6), числовые значения которого являются результатом проведения сортировки линганума записи (1). Вариант такой операции рассмотрен на примере величин расширенной таблицы фиг. 4 (представлено больше значений, чем в таблице на фиг. 3).
Обозначения в таблице: j - индекс нумерации по порядку следования числовых значений символов системы кодирования; X10 - десятичные числовое значения байтов системы кодирования; Lj - десятичные числа линганума перенумерования (новое числовое значение байтов, которые требуется получить после шифрования). Справедливо соотношение: j=1+X10. Для краткости изложения примера в указанной таблице дана лишь часть числовых значений системы кодирования для g1=256. Например, j=111-й символ системы кодирования описывается байтом, соответствующим десятичному числу 11010, а в соответствии с линганумом записи символ перенумеруется и ему соответствует десятичное число 14910 и так далее.
На основании данных таблицы фиг. 4 линганум записи имеет вид:
Например, элемент j=55 равен десятичному числу L55=54 и перенумеруется в число 250.
Восстановление данных путем дешифрования происходит в обратном порядке. Требуется первые и вторые числа поменять местами (изменить направление стрелок знака соответствия) и провести сортировку (перестановку, изменение порядка записи) этих пар чисел так, чтобы ставшими после перестановки первыми числа (левые) возрастали.
На основании ранее изложенной процедуры сортировки получим пошаговые результаты выполнения операций получения требуемой последовательности L
(00, 11, 22,…, 25054,…, 16969,…, 17878,…, 17979,…, 18383,…, 18484,…, 149110,…, 11121,…, 160188,…, 254254, 255255) - уменьшение индексов на единицу;
(00, 11, 22,…, 54250,…, 69169,…, 78178,…, 79179,…, 83183,…, 84184,…, 110149,…, 12111,…, 188160,…, 254254, 255255) - замена индексов и значений;
(01, 12, 23,…, 12112,…, 110150,…, 188161,…, 69170,…, 78179,…, 79180,…, 83184,…, 84185,…, 54251,…, 254255, 255256) - увеличение индексов в новой последовательности на единицу и расстановка элементов по возрастанию индексов
Следовательно, линганум восстановления, определяющий ключи дешифрования:
Показана процедура сортировки значений линганума записи для построения линганума восстановления данных (10), определяющего ключи дешифрования.
2. Описание предлагаемого устройства
Устройство хранения данных с системой шифрования (фиг. 1) содержит запоминающее устройство 1, генератор ключей шифрования 2, шифрователь 3, устройство управления 4, дешифрователь 5, генератор ключей дешифрования 6, при этом первый вход шифрователя 3 соединен с входом всего устройства, второй вход шифрователя 3 подключен к выходу генератора ключей шифрования 2, выход шифрователя 3 соединен с первым входом запоминающего устройства 1, второй вход запоминающего устройства 1 соединен с первым выходом устройства управления, третий вход запоминающего устройства 1 соединен с вторым выходом устройства управления 4, выход запоминающего устройства 1 соединен с вторым входом дешифрователя 5, выход дешифрователя 5 является выходом всего устройства, первый вход дешифрователя 5 соединен с выходом генератора ключей дешифрования 6, причем шифрователь 3 формирует сигналы , преобразуя входные данные Хвх j, j=1,2,…, исходя из условий (4), дешифователь 5 формирует сигналы Хвых j, преобразуя , j=1,2,…, по правилам (7), генератор ключей шифрования 2 формирует сигналы, соответствующие элементам последовательности Lj, j=1, 2,…, g1, (1), где g1 - количество символов в системе кодирования данных, генератор ключей дешифрования 6 формирует сигналы, соответствующие элементам (6) последовательности , j=1,2,…, g1, где g1 - количество символов в системе кодирования данных, полученной так, что порядковые номера j-x элементов последовательности ключей шифрования Lj, j=1,2,…, g1 уменьшаются на единицу и меняются местами со значениями элементов этой последовательности, порядковые номера такой новой числовой последовательности увеличиваются на единицу и элементы полученной последовательности со своими измененными порядковыми номерами расставляются в порядке возрастания этих номеров, образуют последовательность , j=1,2,…,g1, вместе с тем, шифрователь 3 содержит преобразователь ключей шифрования 7, логическое устройство шифрования 8, сопрягающее устройство шифрователя 9,
вход преобразователя ключей шифрования 7 является вторым входом шифрователя 3, а выход преобразователя ключей шифрования 7 подключен к второму входу логического устройства шифрования 8, первый вход логического устройства шифрования 8 соединен с выходом сопрягающего устройства шифрователя 9, вход которого является первым входом шифрователя 3, выход логического устройства шифрования 8 является выходом шифрователя 3,
устройство управления 4 содержит генератор адресов 10 и генератор режимов 11, выход генератора адресов 10 является первым выходом устройства управления 4, первый выход генератора режимов 11 соединен с входом генератора адресов 10, второй выход генератора режимов 11 соединен с вторым выходом устройства управления 4, дешифрователь 5 содержит преобразователь ключей дешифрования 12, логическое устройство дешифрования 13 и сопрягающее устройство дешифрователя 14, вход преобразователя ключей дешифрования 12 является первым входом дешифрователя 5, выход преобразователя ключей дешифрования 12 соединен с первым входом логического устройства дешифрования 13, второй вход логического устройства дешифрования 13 является вторым входом дешифрователя 5, выход логического устройства дешифрования 13 связан с входом сопрягающего устройства дешифрователя 14, выход которого является выходом дешифрователя 5.
3. Состав и работа отдельных устройств, входящих в заявляемое устройство
Устройства 1-4, 7-11 из схемы на фиг. 1 для удобства изложения отнесены к запоминающей части, а устройства 5-6, 12-14 причислены к восстанавливающей части, в результате обе части составляют УХДШ.
3.1 Запоминающее устройство. ЗУ 1 предназначено для записи, хранения и воспроизведения на своем выходе сохраненных L-данных. ЗУ 1 является энергонезависимым и многократно перепрограммируемым. Этим требованиям, в частности, удовлетворяют твердотельные интегральные перепрограммируемые ЗУ с электрическим стиранием (без снятия микросхемы от контактных площадок) или EEPROM [7, с. 231, 233] и жесткие диски (с большим объемом памяти при стационарном режиме использования УХДШ или малогабаритные при мобильном варианте применения).
Имеется матрица, состоящая из запоминающих ячеек (ЗЯ), дешифраторов выбора строк и столбцов, адресных шин для записи и считывания сигналов из ячеек [7, с. 237, 239]. Сигналы выбора ячеек подаются из устройства управления 4 (фиг. 1). Режимы работы: чтение, запись, стирание (вписывание в ЗЯ одинаковых значений).
В рабочем режиме байты L - данных заносятся в ЗЯ. Последовательность записи и считывания регулируется сигналами управления адресами ЗЯ и режимом работы. Сигналы адресов поступают на второй вход ЗУ 1 с первого выхода устройства управления 4. Сигналы режимов подаются на третий вход ЗУ 1 с второго выхода устройства управления 4. После окончания записи генератор ключей шифрования 2 может быть выключен (или отсоединен от всего устройства). При отключении питания от всего устройства ЗУ 1 переходит в режим хранения. Схожим образом реализуется считывание данных из ЗУ 1 для дальнейшего преобразования в исходный вид в восстанавливающей части УХДШ.
Все варианты позволяют получить один и тот же технический результат.
3.2 Генератор ключей шифрования. Генератор 2 предназначен для формирования сигналов, соответствующих лингануму шифрования (1). Эти сигналы представляют набор из g1 байтов. Числовые значения каждого из байтов соответствуют j -ой величине Lj в выражении (1). Каждый набор байтов, состоит из совокупности бит. Параметр g1 - количество символов в выбранной системе кодирования.
Генератор 2 может быть выполнен на элементах дискретной схемотехники, например, на регистрах сдвига с отводами [4], так что к соответствующим отводам подключены инверторы, что позволяет получить на сумматоре сигналы от всех отводов требуемую числовую комбинацию бит, то есть необходимые байты линганума шифрования. Различные комбинации включения/отключения инверторов в отводы позволяет пользователю изменять ключи шифрования. Включение/отключение инверторов отводов возможно в оперативном режиме с учетом выбранного линганума записи, что позволяет варьировать значения ключей шифрования в широких пределах без дополнительного энергопотребления.
Генератор 2 может быть выполнен в виде запоминающего устройства, в которое записаны все требуемые сигналы и из которого они могут быть извлечены. Эти сигналы являются выходными для генератора ключей шифрования 2.
Генератор ключей шифрования 2 может быть выполнен в виде программируемой логической интегральной схемы (ПЛИС) [6, 7, с. 494, 534] или ее разновидности либо варианта ПЛИС, который может быть создан в будущем. Сигналы управления, подаваемые на ПЛИС, позволяют оперативно реализовать должные ЛФ, получить требуемые последовательности байтов.
Во всех вариантах имеются широкие возможности варьирования значений ключей шифрования при сохранении уровня энергопотребления и микроминиатюризации. Все варианты выполнения обеспечивают один и тот же технический результат.
3.3 Шифрователь. Устройство 3 предназначено для шифрования входных данных путем перенумерования байтов в соответствии с линганумом записи (выражение (1)), формируемым генератором ключей шифрования 2.
Используются ЛФ, схожие с выражением (8), построение которых дано в примере. Такие функции могут быть реализованы, например, на логических элементах "И", "ИЛИ", "НЕ" [5, 6]. В состав шифрователя входит преобразователь ключей шифрования 7, ЛУ шифрования 8 и сопрягающее устройство шифрователя 9.
Краткое изложение сущности операций шифрования. Для реализации ЛФ шифрования, как это следует из выражения (8), требуется выполнить операции инверсии, что возможно путем применения инверторов, режим работы которых регулируется управляющими сигналами. Эти операции осуществляются в ЛУ шифрования 8, а указанные управляющие сигналы вырабатываются преобразователем ключей шифрования 7. Управляющие сигналы создаются в результате сравнения (по определенному правилу) байтов, формируемых генератором ключей шифрования 2 (они задаются пользователем), со всеми байтами выбранной системы кодирования (они выполняют роль эталонов).
Назначение инверторов - осуществление операции инвертирования (отрицания) двоичной переменной (обозначим ее "А") при воздействии внешнего сигнала управления U. Например, переменная А преобразуется в А*, если U равно логической "1" и не преобразуется, если U равно логическому "0".
В частности, инвертор может быть построен из двух электронных ключей (Кл. 1, 2) и схемы, выполняющей функцию инверсии "НЕ". Общая схема состоит из двух параллельных ветвей. В первой расположен Кл. 1, во второй - элемент "НЕ" и последовательно с ним Кл. 2. Входы и выходы ветвей являются также входами и выходами инвертора. Кл. 1 размыкается, когда на управляющий вход ключа подается положительный сигнал U (обозначим его "+1"), а Кл. 2 при подаче этого сигнала замыкается. В этом случае входная переменная А проходит на выход через Кл. 2 и инвертируется ("+1" - инверсия есть). Если подается противоположный сигнал управления (обозначим "0"), то Кл. 1 замыкается, а Кл. 2 размыкается. Входная переменная А проходит на выход без инверсии ("0" - инверсии нет). Меняя значение U, можно получить аргументы ЛФ в требуемом инвертируемом или нет виде. ЛФ для управления инверторами задается следующим образом: устройство управления инверторами имеет два входа, на которые подаются логические величины "В" и "С", тогда на выходе формируются значения сигналов управления в виде соотношения U=С⋅В*. Эта ЛФ принимает ненулевое значение лишь для набора аргументов (В;С)=(0;1). Устройства управления инверторами посредством сигналов U могут быть реализованы на логических элементах "И", "НЕ" [5, 6].
Исходя из установленных значений U (величина принимает единичное значение лишь для пары аргументов (0;1)) для проведения операции инверсии требуется сформировать следующий набор значений: переменная "С" (значение функции преобразования) равна "1", а аргумент "В"(входной сигнал) равен "0" (для варианта, когда операция инверсии реализуется при U=1).
Введено обозначение: ; ; ; - j-e компоненты ЛФ шифрования, каждая из которых равна произведению бит, часть из которых может быть инвертирована. Эти значения должны быть сформированы схемотехнически, они соответствуют лингануму записи. ЛФ шифрования - это набор величин ; ; ; , являющихся суммами указанных компонент ЛФ для всех значений j=1,…, g1 (например, g1=256).
В соотношении U=С⋅В* считаем, что переменная "С" аналогична значениям компонент ЛФ шифрования и одновременно значениям линганума записи (таблица фиг. 3), а "В" является аргументом этой функции (таблица фиг. 2). Тогда для проведения операции инвертирования сигнал управления U в виде логической "+1" будет создаваться, когда "С" равно "+1" и "В" равно "0". Для всех других наборов переменных (В;С) на выходе схемы формирования сигнала управления U будет формироваться "0". Сигнал U определяется по указанному правилу для каждого i-го бита любого j-го байта применительно к каждой функции , k=1,…, 8 (фиг. 3). Следовательно, сигналы управления инверторами в общем виде зависят от трех указанных индексов (i, j, k) и поэтому обозначены Ui, j,k. То есть величина "С" (компоненты ЛФ и значения линганума записи) является разрешающим сигналом проведения инвертирования величины "В" (аргументов ЛФ).
Преобразователь ключей шифрования 7, входящий в шифрователь 3, формирует управляющие сигналы Ui, j, k для инверторов на основе выбранного пользователем линганума, который реализуется в виде сигналов генератора ключей шифрования 2, а ЛУ шифрования 8 позволяет получить компоненты и построить требуемую ЛФ шифрования.
Схема реализации преобразователя ключей шифрования 7. Для формирования Ui, j, k в возможной схеме преобразователя ключей шифрования 7 имеется вход для значений линганума L, передаваемых на второй вход шифрователя 3 от генератора ключей шифрования 2, а также имеется генератор байтов системы кодирования. Байты этой системы известны. Для g1=256 по аналогии с (2) эти байты обозначены . Величины байтов принимают значения целых десятичных чисел от 0 до 255, а в двоичной системе исчисления они совпадают с числами в строках таблицы на фиг. 2 (от набора (0,…,0) до (1,…,1)). Генератор байтов системы кодирования может быть выполнен на регистрах с весовыми отводами и сумматорами [4] или в виде запоминающего устройства. Этот генератор байтов запускается при подключении напряжения питания. Величины есть значения номеров байтов (эталонов), используемых в подготовительном режиме для получения сигналов установки инверторов. Эти сигналы установки далее применяются в рабочем режиме в ЛУ шифрования 9 для формирования ЛФ шифрования.
Схемы для реализации ЛФ U=С⋅В* и генератор байтов системы кодирования входят в состав преобразователя ключей шифрования 7 и могут быть построены на логических элементах "НЕ", "И" для всех бит (i=1,…, 8) j-го байта. Аналогичные схемы нужны для всех разных значений j=1,…, g1 с целью создания напряжений управления всеми инверторами, что позволяет получить требуемые ЛФ шифрования.
Например, L1, j последовательно умножается на инверсии значений и получаются сигналы U1, j, 1, U2, j, 1,…, U8, j, 1. Если же L8, j умножается на в результате формируются величины U1, j, 8, U2, j, 8,…, U8, j, 8 и так для всех байтов j=1,…, g1. Для ASCII индексы величин Ui, j, k характеризуют: i=1,…,8 - зависимость от номера бит в байте; j=1,…, 256 - подчиненность от номера байта; k=1,…,8 - связанность с номером компонент ЛФ шифрования. Такими же по назначению индексами нумеруются инверторы, то есть Ii,j,k.
Работа преобразователя ключей шифрования 7. После подключения электропитания запускается генератор ключей шифрования 2 и генератор байтов системы кодирования. В соответствии с указанными правилами создаются напряжения управления инверторами U. В результате преобразователь ключей шифрования 7 трансформирует ключи шифрования в управляющие напряжения для инверторов ЛУ шифрования 8.
ЛУ шифрования 8 предназначено для выполнения операции шифрования входных байтов путем их перенумерования в соответствии с линганумом записи, с использованием напряжений управления инверторами. Для воплощения этой задачи требуется использовать схемы для реализации ЛФ, сходных с выражением (8), применяя логические элементы "И", "ИЛИ", "НЕ" [5, 6].
В структуре ЛФ выражения (8) отметим особенности. Ранее аргументы обозначались Xi, j, i=1,…,8; j=1,2,…, a в приведенном примере выражений для и используется одноиндексная нумерация Xi, i=1,…, 8. Это связано с тем, что каждое слагаемое в ЛФ соответствует определенному значению индекса j, то есть вариация этого индекса при построении ЛФ учтена, поэтому для упрощения записей введена одноиндексная нумерация. При построении схемы ЛУ шифрования 8 это обстоятельство учтено в том, что в схеме имеются две части: одна формирует компоненты сумм различных ЛФ, а другая осуществляет их объединение, образуя в результате требуемую функцию целиком.
Каждая из указанных ЛФ представляется суммой произведений аргументов (Xi, j, i=1,…, 8; j=1,2,…), как в формуле (8), некоторые из них инвертированы. Количество слагаемых для g1=256 равно количеству строк в таблицах фиг. 2, 3. В зависимости от вида линганума записи часть слагаемых указанной суммы произведений равна нулю, поэтому они отсутствуют в (8). В общем случае для каждой из восьми компонент ЛФ (для блока в виде байта) требуется при их схемотехнической реализации формировать все g1 слагаемых (например, g1=256).
По правилам [5, с. 31; 6, с. 18] формирования любой ЛФ выделяются наборы аргументов, при которых функция равна единице (отмечены на фиг. 3 знаком (*)). Для инвертирования нулевых значений из этого набора аргументов используется инверторы. Инверторы Ii, j, k управляются сигналами Ui, j, k вырабатываемыми преобразователями ключей шифрования 7. В подготовительном режиме формируются напряжения управления работой инверторов, а в рабочем режиме на входы соответствующих устройств подаются байты данных для дальнейшего шифрования, сохранения и восстановления.
То есть ЛУ шифрования 8 состоит из формирователей компонент каждого j-го байта (это произведение бит, часть которых может быть инвертирована) и сумматоров для получения набора ЛФ шифрования
Состав схем одного из возможных вариантов реализации формирователей компонент может включать инверторы Ii, j, k, i=1,…, 8; j=1,…,g1 (например, g1=256); k=1,…,8 и перемножители двоичных сигналов (8-ми входовые элементы "И"). В режиме записи на входы формирователей компонент подаются значения входных данных (аргументы ЛФ) (X1, j, Х2, j,…, X8, j). На выходе имеются значения компонент ЛФ для каждого значения j, причем эти компоненты являются произведениями бит входных данных (аргументов ЛФ) и некоторые из них, как упоминалось ранее, инвертированы. В результате формируются слагаемые для каждой из указанных ЛФ, соответствующие j-му индексу. Далее проводится суммирование по всем значениям индекса j.
В схеме реализации формирователя компонент ЛФ так же имеется вход для сигналов управления инверторами Ui, j, k (i - индекс для изменения бит входных байтов; j - индекс вариации входных байтов; k - индекс нумерации компонент ЛФ ).
Например, на инверторы I1, j, 1; I2, j, 1;… I8, j, 1, позволяющие получить инвертированные или нет входные биты, подаются 1, 2,…, 8-й биты j-го байта входных данных X1, j, X2, j,…, X8, j, а также сигналы управления записью U1, j, 1; U2, j, 1;…; U8, j, 1. В результате перемножения сигналов на выходах инверторов получается компонента ЛФ . Таким же образом применяются другие инверторы, в частности, если на инверторы I1, j, 8; I2, j,8;…; I8, j, 8, подать сигналы управления записью U1, j, 8; U2, j, 8;…; U8, j, 8, то будет найдена компонента ЛФ . Такие операции проводятся для всех значений индекса j=1,…, g1 (например, g1=256). Применяются схемы для каждого указанного значения j в отдельности, которые отличаются состоянием инверторов (подаются различающиеся управляющие сигналы, зависящие от линганума).
Имеются схемы суммирования слагаемых, составляющих компоненты ЛФ для различных j, и схемы для формирования набора ЛФ. Пусть примером ЛФ является выражение (8) для одной из функций набора, допустим, . На каждую схему суммирования компонент (элементы "ИЛИ") поступают сигналы от формирователей этих компонент для различных j. Компоненты, относящиеся к одной и той же ЛФ, но для разных значений j суммируются на g1 - входовых логических элементах "ИЛИ" (например, g1=256).
На выходе схемы суммирования компонент имеются значения набора ЛФ шифрования , которые соответствуют разрядам зашифрованных посредством перенумерования байтов (3). То есть шифрователь 3 позволяет реализовать операции преобразования входных данных в зашифрованные байты, отправляемые в ЗУ 1.
Сопрягающее устройство шифрователя 9 предназначено для согласования ЛУ шифрования 8 с источником входных данных или для согласования формы представления данных или для применения известных правил для обеспечения работоспособности ЛУ шифрования 8. Согласование позволяет энергетически эффективно и без искажений передать на ЛУ шифрования 8 входные данные. Функция согласования формы данных может заключаться, например, в преобразовании последовательной передачи байтов в параллельное следование байтов или в использовании некоторых протоколов, стандартов передачи/приема данных.
В несогласованных линиях связи возможны искажения данных [7, с. 29-32]. Они могут быть снижены путем применения устройства согласования [7, с. 32-40] или стандартов ввода/вывода данных [7, с. 43-53], что также относится к функции сопрягающего устройства. Оно может быть выполнено на пассивных или активных элементах (транзисторах, микросхемах) или в виде универсальной последовательной шины USB как в [3]. Все варианты обеспечивают одинаковый технический результат.
Работа шифрователя 3 начинается с подачи байтов входных данных (X1, j, Х2, j,…, X8, j - это разряды двоичных чисел j-й строки таблицы фиг. 2). Инверторы установлены сигналами управления в подготовительном режиме, поэтому формируются необходимые ЛФ шифрования. Это позволяет задать новый номер каждому из входных символов (входных байтов) согласно этой ЛФ шифрования, что и требуется получить.
Схемы шифрователя 3 могут быть осуществлены на логических элементах или в виде ПЛИС [6, 7, с. 494, 534] или на ее разновидности либо на таком варианте ПЛИС, который может быть создан в будущем. Все варианты выполнения обеспечивают один и тот же технический результат.
3.4 Устройство управления. Это устройство 4 является генератором сигналов управления операциями записи/чтения зашифрованных данных в/из ячеек ЗУ 1.
Один из возможных вариантов реализации устройства 4 предполагает генерирование следующих сигналов: 1) импульсов адресов строк и колонок ЗЯ (, , m, n = 1,2,… - сигналы управления перебором номеров соответственно строк и колонок матрицы ЗЯ, в которые побайтно заносятся L-данные для хранения в ЗУ 1 и дальнейшего их чтения); 2) сигналов задания режима записи/чтения данных в/из ЗУ 1 (этот сигнал обозначен ). Он управляет операцией записи зашифрованных данных в ЗУ 1 и чтением этих данных для дальнейшей их передачи на восстанавливающую часть УХДШ (это происходит после начала работы преобразователя ключей дешифрования 7).
Устройство, создающее импульсы адресов строк и колонок, названо генератором адресов 10, а режим работы задается генератором режимов 11. Эти сигналы подаются с первых выходов этих генераторов на первый и второй выходы устройства управления 4 соответственно. Со второго выхода генератора режимов 11 поступают запускающие сигналы на вход генератора адресов 10 для активации его работы.
Генератор адресов 10 и генератор режимов 11 являются стандартными. Управление режимами чтения, записи, стирания (вписывание в ЗЯ одинаковых значений) осуществляется с помощью разрядных шин, подключенных ко всем ЗЯ.
Формирование сигналов режима возможно известными методами и устройствами [5-7]. Генератор режимов 11 может работать в автоколебательном режиме, формируя сигналы такой длительности, которая определяет временные интервалы для записи и восстановления данных. Сигнал может запускаться, например, вручную переключателем, подключающим генератор 11 к источнику питания, что приводит к началу процесса восстановления данных на выходе УХДШ.
Работа устройства управления 4. В зависимости от режима работы, задаваемого генератором режимов 11, генератором адресов 10 формируются импульсы записи, чтения, стирания байтов ЗУ 1. В результате осуществляется запись зашифрованных байтов в ЗЯ и считывание L-данных, хранящихся в ЗУ 1.
3.5 Дешифрователь. Устройство 5 предназначено для дешифрования полученных из ЗУ 1 зашифрованных путем перенумерования байтов данных (согласно значениям линганума восстановления). Для этого используются схемы и формируются ЛФ, сходные с теми, которые предназначены для проведения шифрования и записи (примером является выражение (8)), с тем отличием, что линганум восстановления имеет другой вид. Указанные схемы могут быть реализованы, например, на логических элементах "И", "ИЛИ", "НЕ" [5, 6] либо на ПЛИС. Операция дешифрования реализуется с помощью преобразователя ключей дешифрования 12, ЛУ дешифрования 13 и сопрягающего устройства дешифрователя 14.
Преобразователь ключей дешифрования 12 сходен с преобразователем ключей шифрования 7. Разница между ключами шифрования и дешифрования связана с отличиями линганумов. Величины L', формируемые генератором ключей дешифрования 6, получаются в результате сортировки значений сигналов генератора ключей шифрования 2, что рассмотрено на примере и получены выражения (9), (10).
Сортировка позволяет добиться унификации путем использования одинаковых операций и схем при дешифровании и при шифровании (различия заключаются в сигналах управления инверторами). Составление ЛФ восстановления байтов путем дешифрования осуществляется таким же образом, как и при реализации операций записи данных.
Введено обозначение V=Vi, j, k - сигналы управления инверторами дешифрователя, используемые в ЛУ дешифрования 14, где i - индекс для нумерации бит; j - индекс вариации байтов; k - индекс компонент ЛФ дешифрования.
Схема реализации преобразователя ключей дешифрования 12. В этой схеме для формирования V=Vi, j, k имеется вход для значений линганума L', передаваемых на первый вход дешифрователя 5 от генератора ключей дешифрования 6, а также используется генератор байтов системы кодирования. Эти заранее известные байты для g1=256 по аналогии с (2) обозначены .
Величины этих байтов принимают значения целых десятичных чисел от 0 до 255, а в двоичной системе исчисления они совпадают с числами в строках таблицы на фиг. 2 (от набора (0,…,0) до (1,…,1)). Генератор байтов системы кодирования может быть выполнен на регистрах с весовыми отводами и сумматорами [4] или в виде запоминающего устройства. Этот генератор байтов запускается при подключении напряжения питания. Величины - это эталонные значения номеров байтов, используемые в подготовительном режиме для получения сигналов Vi, j, k установки инверторов, которые далее применяются в рабочем режиме в ЛУ дешифрования 13.
Далее на логических элементах "НЕ" и "И" многократно реализуется ЛФ V=С⋅В* для всех бит (i=1,…,8) каждого j-го байта. Аналогичные схемы для разных значений j=1,…, g1 позволяют получить требуемые ЛФ для сигналов управления всеми инверторами ЛУ дешифрования 14.
Сопрягающее устройство дешифрователя 14 предназначено для согласования ЛУ 13 дешифрователя с нагрузкой, на которую из УХДШ подаются выходные данные или для согласования формы представления данных.
Согласование, обеспечиваемое сопрягающим устройством дешифрователя 14, позволяет энергетически эффективно и без искажений передать данные на выход УХДШ. Согласование данных может заключаться, например, в преобразовании последовательности байтов в паралельное следование байтов или в использовании известных протоколов либо стандартов передачи/приема данных.
В несогласованных линиях связи возможны искажения данных [10, с. 29-32]. Они могут быть снижены путем применения устройств согласования [10, с. 32-40] или стандартов ввода/вывода данных [10, с. 43-53], что также обеспечивается сопрягающим устройством 14. Оно может быть выполнено на пассивных или на активных элементах (транзисторах, микросхемах) или в виде универсальной последовательной шины USB как в [3]. Для любого варианта может быть обеспечен одинаковый технический результат.
Работа преобразователя ключей дешифрования 12. После подключения электропитания запускается генератор ключей дешифрования 6 и генератор байтов системы кодирования. Далее устанавливаются сигналы управления инверторами. В итоге преобразователь ключей дешифрования 12 трансформирует ключи дешифрования в управляющие сигналы инверторов, находящихся в ЛУ дешифрования 13.
ЛУ дешифрования 13 предназначено для выполнения операции дешифрования принятых из ЗУ 1 зашифрованных байтов путем их перенумерования в соответствии с линганумом восстановления данных, с использованием напряжений управления инверторами. Для воплощения этой задачи требуется применить схемы, реализующие ЛФ, ранее рассмотренные на примере выражения (8). Схемотехнически ЛУ дешифрования 13 может быть реализован на логических элементах "И", "ИЛИ", "НЕ" или на ПЛИС.
Инверторы , посредством которых осуществляется инвертирование требуемых аргументов ЛФ по правилам [5, 6], управляются сигналами Vi, j, k, вырабатываемыми преобразователями ключей дешифрования 12 в подготовительном режиме. В результате предварительной установки инвертируются лишь необходимые для проведения дешифрования данных биты. В рабочем режиме на входы инверторов поступают байты зашифрованных данных (3).
ЛУ дешифрования 13 состоит из формирователей компонент каждого j-го байта (это произведение бит, часть которых может быть инвертирована) и сумматоров указанных компонент для получения набора ЛФ дешифрования для всех значений j=1,…, g1 (например, g1=256).
Сущность операций ЛУ дешифрования 13. Схема одного из возможных вариантов реализации формирователя компонент ЛФ может состоять из инверторов , i=1,…,8; j=1,…, g1 (например, g1=256); k=1,…,8 и перемножителей двоичных сигналов (8-ми входовых элементов "И" для получения произведения восьми значений бит каждого из байтов, некоторые из бит инвертируются соответствующим инвертором). В режиме восстановления данных на вход формирователей компонент ЛФ подаются значения принятых из ЗУ 1 зашифрованных данных, которые являются в этом случае входными сигналами и аргументами ЛФ. У инверторов, как и при шифровании, имеется вход для сигналов управления Vi, j, k (i - индекс для изменения бит входных байтов; j - индекс вариации входных байтов; k - индекс компонент ЛФ). В результате на выходе этих схем имеются значения компонент ЛФ дешифрования .
Для получения набора ЛФ дешифрования проводится суммирование этих слагаемых по всем возможным значениям индекса j, что реализуется сумматорами (схемами "ИЛИ"). На каждую из схем сумматоров компонент (логических элементов "ИЛИ") поступают сигналы от формирователей этих компонент, то есть слагаемые ЛФ для различных значений индекса j. В результате компоненты, относящиеся к одной и той же ЛФ, но для разных значений], суммируются на g1 - входовых элементах "ИЛИ" (например, g1=256). После суммирования компонент вырабатывается набор ЛФ, это значения ЛФ дешифрования , которые в рабочем режиме соответствуют разрядам восстановленных в результате дешифрования байтов (5).
В рабочем режиме на вход ЛУ дешифрования 13 подаются все сформированные требуемые сигналы управления инверторами Vi, j, k (они создаются в подготовительном режиме), а также зашифрованные данные (3). В соответствии с ЛФ дешифрования F' обеспечивается реализация операции перенумерования принятых из ЗУ 1 зашифрованных байтов и осуществляется восстановление данных (5) в исходном виде (Хвых = Хвх).
Схемы дешифрователя 5 могут быть выполнены на логических элементах или в виде ПЛИС [6, 7, с. 494, 534] или на ее разновидности либо варианта ПЛИС, который может быть создан в будущем. Все варианты выполнения обеспечивают один и тот же технический результат.
3.6 Генератор ключей дешифрования. Этот генератор 6 предназначен для формирования сигналов, соответствующих лингануму дешифрования (6). Его сигналы представляют набор, состоящий из g1 байтов, числовые значения каждого из которых соответствуют j-му элементу в выражении (6), представленному в двоичной системе. Параметр g1 - количество символов в выбранной системе кодирования. Сигналы генератора ключей дешифрования являются результатом сортировки ключей дешифрования (п. 1.2).
Генератор 6 может быть выполнен на элементах дискретной схемотехники, например, на регистрах сдвига с отводами [4]. К соответствующим отводам подключены инверторы, что позволяет получить на сумматоре сигналы от всех отводов, составляющие в совокупности требуемую числовую комбинацию бит (байтов линганума дешифрования). Генератор 6 может быть выполнен в виде запоминающего устройства, в которое записаны все требуемые сигналы и из которого они могут быть оперативно извлечены.
Генератор ключей дешифрования 6 может быть выполнен в виде ПЛИС [6, 7, с. 494, 534] или ее разновидности либо варианта ПЛИС, который может быть создан в будущем. Сигналы управления, подаваемые на ПЛИС, позволяют реализовать должные ЛФ, получить требуемые последовательности байтов.
Во всех вариантах имеются широкие возможности варьирования значений ключей дешифрования при сохранении уровня энергопотребления и микроминиатюризации. Все варианты выполнения обеспечивают один и тот же технический результат.
3.7 Работа заявленного устройства
На примере текстов рассмотрены операции записи, хранения и восстановления данных. Применен вариант линганума записи из таблицы фиг. 4 для двух однословных текстов со словами yES и NOT. В полной таблице системы кодирования [9] символ "у" соответствует числу 121 с номером по порядку j=122. Из той же таблицы следует, что указанный символ перенумеруется в число 11. Для символа "у" имеем соответствие 121→11. Аналогично для других символов: "Е" - 69→169; "S" - 83→183; "N" - 78→178; "О" - 79→179; "Т" - 84→184.
При восстановлении данных с помощью случайно выбранного из всех возможных вариантов линганума восстановления данных (кодов дешифрования) применим, например, тот, в котором значения следуют в порядке возрастания (фиг. 4), без сортировки. Зашифрованные символы со значениями 121, 69, 83 будут расшифрованы как знаки со значениями 11, 169, 183 (по порядку номеров это символы 12, 170, 184). Отмечалось, что число и индекс в таблицах различаются на единицу. В результате вместо текста yES будут получены символы й . Буквы со значениями 78, 79, 84 (текст NOT) будут расшифрованы как символы со значениями 178, 179, 184 (по порядку номеров это 179, 180, 185), то есть [9]. Использование ложного линганума приводит к искаженному восстановлению данных. В случае применения верного линганума восстановления, как было показано ранее (выражение (10)), данные воспроизводятся без искажений. Линганум должен держаться в секрете, часто изменяться.
Работа заявленного устройства начинается с подготовительного этапа и задания пользователем в генераторе ключей шифрования 3 (п. 3.2) значений линганума записи (1), то есть всех бит каждого из g1 байтов. Это позволяет в преобразователе ключей шифрования 7, входящего в шифрователь 3, определить величины сигналов управления инверторами Ui,j,k (i - индекс нумерации бит входных байтов; j - индекс вариации входных байтов; k - индекс нумерации компонентов ЛФ), по которым устанавливаются режимы работы инверторов Ii,j,k (всех бит каждого байтов и для всех ЛФ) ЛУ шифрования 8 (п. 3.3). В рабочем режиме записи и сохранения на вход шифрователя 3 подаются данные (2), которые шифруются (3) и записываются в ЗУ 1 (п. 3.1).
Восстановление данных также начинается с задания пользователем в генераторе ключей дешифрования 6 (п. 3.6) значений линганума восстановления (6) (всех бит каждого из g1 байтов, полученных предварительно в результате проведения операции сортировки (п. 1.2)). На подготовительном этапе в преобразователе ключей дешифрования 12, входящим в дешифрователь 5 (п. 3.5), определяются величины сигналов управления инверторами дешифрователя Vi,j,k (i - индекс бит каждого байта; j - индекс вариации байтов; k - индекс нумерации компонент ЛФ), по которым устанавливаются режимы работы инверторов I'i,j,k (всех бит любого байта, для каждой ЛФ дешифрования).
Далее в устройстве управления 4 запускается генератор режимов 11, который активирует также генератор адресов 10, управляющий считыванием байтов из ЗЯ (п. 3.1). После окончания считывания процесс завершается до прихода от генератора режимов 11 следующего сигнала , который предназначается для начала процедуры восстановления данных на выходе УХДШ и может создаваться различным образом в зависимости от способа применения устройства. Например: может запускаться вручную пользователем, получающим выходные данные (путем сдвига переключателя); вручную администратором УХДШ либо применением работающего в автоколебательном режиме генератор 11, который устанавливает периодичность восстановления данных (например, через каждую минуту, час, сутки и так далее).
Считанные из ЗУ 1 данные поступают на второй вход дешифрователя 5 (п. 3.5). Эти зашифрованные данные (3) поступают на ЛУ дешифрования 13 и в соответствии с сигналами дешифрования воссоздаются в исходном виде (5), после чего передаются на выход УХДШ (фиг. 1). Операция восстановления данных на этом завершается.
После формирования необходимых сигналов управления генераторы ключей шифрования 2 и дешифрования 6 могут быть отключены (в целях безопасности). При отключенном питании всего УХДШ сигналы установки инверторов не сохраняются и без ввода ключей шифрования и дешифрования использовать заявляемое устройство в рабочем режиме невозможно (сохраняются лишь L-данные в энергонезависимом ЗУ 1), несанкционированный доступ исключен. Сбросить настройки инверторов можно путем задания ключей шифрования (дешифрования), которые равны одной и той же величине.
Сопрягающие устройства 9 и 14 могут работать по стандарту USB 2.0 или любому другому более быстродействующему стандарту, который может быть создан в будущем.
3.8 Обоснование достижения технического результата, защищенность заявляемого устройства от несанкционированного доступа.
Количество вариантов линганума, которые могут быть использованы при шифровании/дешифровании, определяется числом перестановок . Несанкционированный доступ может осуществляться лишь путем перебора всех возможных вариантов преобразования номеров байтов, а также их анализа, на что требуется затрачивать промежуток времени, определяемый факториальной функцией от g1 (для g1=256 это величина большого порядка). Для каждого варианта требуется установить наличие информативной значимости в полученных данных, то есть имеется ли информационный смысл в полученных после применения варианта ключей дешифрования данных, для чего требуется быстродействующая интеллектуальная система, что существенно увеличивает затраты времени. Статистические методы нахождения ключей дешифрования в данном случае не применимы. Пользователь должен держать в секрете ключи шифрования (линганум записи). Для любого набора ключей дешифрования будут получены некоторые варианты входных данных, но они верны лишь для единственного набора ключей дешифрования.
Предотвращение возможности несанкционированного доступа повышает безопасности передачи информации от источника к пользователю. Линганум необходимо обновлять, а генераторы ключей целесообразно выполнить отключаемыми от электропитания.
В прототипе [3] ключи шифрования изменяются подключением различных микросхем и так как велико, то при изменении значений ключей шифрования в широких пределах повышается энергопотребление и увеличиваются габариты устройства. В заявленном устройстве коды шифрования задаются пользователем, например, изменением порядка следования инверторов в схемах [4] формирования байтов кодов шифрования.
Представленная совокупность существенных признаков позволяет получить технический результат и достичь цели изобретения, которые заключаются в повышении защищенности хранения данных за счет их шифрования и наличие возможности варьирования значений ключей шифрования в широких пределах самим пользователем без дополнительных энергозатрат и с сохранением микроминиатюрности.
4. Некоторые варианты применения заявляемого устройства.
1. Стационарный вариант. Источником входных данных могу быть датчики или базы данных о множестве объектов. Такие сведения за определенный период накапливаются в хранилище данных в зашифрованном виде до момента востребования этих данных. При возникновении потребности в использовании данных они изымаются из хранилища, дешифруются и поступают пользователю в первозданном виде.
2. Мобильный вариант. После записи мультимедийных данных (например, с видеокамеры) УХДШ отключается от источника входных данных и перемещается в условиях возможного несанкционированного доступа (досмотра) в то место, которое требуется пользователю для восстановления данных в исходном виде. Данные защищены, доступ затруднен. Имеется сходство с использование известных мобильных накопителей данных, но здесь обеспечивается эффективное шифрование, варьируемое самим пользователем устройства в широких пределах без дополнительного энергопотребления и с сохранением микроминиатюрности УХДШ.
5. Электропитание, разъемы. Энергообеспечение определяется исходя из варианта использования УХДШ, например, от стационарных источников или от малогабаритных аккумуляторов. Типы разъемов зависят от варианта использования УХДШ (виды соединителей источников входных данных и выходных потребителей). Например, для мобильного варианта, когда источником и потребителем данных являются средства вычислительной техники, могут использоваться соединители типа USB, штекеры и высокочастотные разъемы (предпочтительно с экранированием и заземлением).
Библиографический список
1. Патент RU №2506633, "Устройство хранения данных"; МПК: G06F 12/14, G11C 16/22, G06F 21/60; опубликовано 10.02.2014, Бюл. №4.
2. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. - М.: Радио и связь, 2001. - 376 с.
3. Патент RU №2342697, "Портативное устройство хранения данных с системой шифрования"; МПК G06F 12/14; опубликовано 27.12.2008, Бюл. №36.
4. Варакин Л.Е. Системы связи с шумоподобными сигналами. - М.: Радио и связь, 1985. - 384 с.
5. Бойко В.И. и др. Схемотехника электронных систем. Цифровые устройства. - СПб: БХВ-Петербург, 2004. - 512 с.
6. Лехин С.Н. Схемотехника ЭВМ. - СПб: БХВ-Петербург, 2010. - 672 с.
7. Угрюмов Е.П. Цифровая схемотехника. - СПб.: БХВ-Петербург, 2004. - 800 с.
8. Электроника. Энциклопедический словарь. Гл. ред. Колесников В.Г., - М. Сов. энциклопедия, 1991, - 688 с.
9. ftp://ftp.vt.tpu.ru/study/Malchukov/public/PHDL/Projects/ascii.pdf, 28.11.2020 г.
1. Устройство хранения данных с системой шифрования, содержащее запоминающее устройство и генератор ключей шифрования, отличающееся тем, что введены шифрователь, дешифрователь, устройство управления, генератор ключей дешифрования, причем
первый вход шифрователя соединен с входом всего устройства, второй вход шифрователя подключен к выходу генератора ключей шифрования, выход шифрователя соединен с первым входом запоминающего устройства, второй вход запоминающего устройства подключен к первому выходу устройства управления, второй выход устройства управления соединен с третьим входом запоминающего устройства, выход запоминающего устройства соединен со вторым входом дешифрователя, первый вход дешифрователя соединен с выходом генератора ключей дешифрования, выход дешифрователя подключен к выходу всего устройства, шифрователь формирует сигналы , где j=1, 2,…, исходя из условий
где j=1, 2,… - индекс нумерации блоков;
Xвх j - значение j-го блока входных данных;
- значение j-го блока после шифрования;
L1; L2; Lg1 - последовательность значений ключей шифрования, формируемых генератором ключей шифрования;
g1 - количество символов в системе кодирования данных, дешифрователь формирует сигналы Xвых j, где j=1, 2,…, исходя из условий
j=1, 2,… - индекс нумерации блоков;
- значение j-го блока до дешифрования;
Xвых j - значение j-го блока выходных данных;
; ; - последовательность значений ключей дешифрования, формируемых генератором ключей дешифрования;
g1 - количество символов в системе кодирования данных, генератор ключей шифрования формирует сигналы, соответствующие элементам последовательности Lj, j=1, 2,…, g1, каждое значение которой является одним из целых положительных чисел от 0 до (g1-1), используемым при составлении этой последовательности лишь однажды, где g1 - количество символов в системе кодирования данных, генератор ключей дешифрования формирует сигналы, соответствующие элементам последовательности , j=1, 2,…, g1, где g1 - количество символов в системе кодирования, полученной так, что порядковые номера j-x элементов последовательности ключей шифрования Lj, j=1, 2,…, g1 уменьшаются на единицу и меняются местами со значениями элементов этой последовательности, порядковые номера этой новой числовой последовательности увеличиваются на единицу и элементы полученной последовательности со своими измененными порядковыми номерами расставляются в порядке возрастания этих номеров.
2. Устройство по п. 1, отличающееся тем, что шифрователь содержит
преобразователь ключей шифрования, логическое устройство шифрования и сопрягающее устройство шифрователя,
вход преобразователя ключей шифрования подсоединен ко второму входу шифрователя,
выход преобразователя ключей шифрования подключен ко второму входу логического устройства шифрования, первый вход логического устройства шифрования соединен с выходом сопрягающего устройства шифрователя, вход сопрягающего устройства соединен с первым входом шифрователя и всего устройства, выход логического устройства шифрования соединен с выходом шифрователя, соединенного с первым входом запоминающего устройства;
шифрователь выполнен на логических элементах или программируемых логических матрицах или ее вариантах;
сопрягающее устройство шифрователя выполнено на пассивных элементах или на транзисторах или на микросхемах или в виде универсальной последовательной шины USB.
3. Устройство по п. 1, отличающееся тем, что дешифрователь содержит
сопрягающее устройство дешифрователя, преобразователь ключей дешифрования и логическое устройство дешифрования,
вход преобразователя ключей дешифрования подсоединен к первому входу дешифрователя, выход преобразователя ключей дешифрования соединен с первым входом логического устройства дешифрования, второй вход логического устройства дешифрования подключен ко второму входу дешифрователя, выход логического устройства дешифрования связан с входом сопрягающего устройства дешифрователя, выход которого подключен к выходу дешифрователя и всего устройства;
дешифрователь выполнен на логических элементах или программируемых логических матрицах или ее вариантах;
сопрягающее устройство дешифрователя выполнено на пассивных элементах или на транзисторах или на микросхемах или в виде универсальной последовательной шины USB.
4. Устройство по п. 1, отличающееся тем, что устройство управления содержит
генератор адресов и генератор режимов, выход генератора адресов является первым выходом устройства управления, первый выход генератора режимов является вторым выходом устройства управления, второй выход генератора режимов соединен с входом генератора адресов.
5. Устройство по п. 1, отличающееся тем, что генератор ключей шифрования выполнен на элементах дискретной схемотехники или в виде запоминающего устройства или на программируемых логических матрицах или ее вариантах.
6. Устройство по п. 1, отличающееся тем, что генератор ключей дешифрования выполнен на элементах дискретной схемотехники или в виде запоминающего устройства или на программируемых логических матрицах или ее вариантах.