Изобретение относится к криптографии, в частности к способам поточного шифрования, в которых используется побайтная передача информации на основе таблицы кодирования символов ASCII.
В описании использованы следующие термины.
ASCII – (англ. American standard code for information interchange) - название таблицы (кодировки, набора), в которой некоторым распространённым печатным и непечатным символам сопоставлены числовые коды.
Алгоритмы шифрования делятся на две группы: алгоритмы симметричного шифрования и алгоритмы ассиметричного шифрования. В алгоритмах симметричного шифрования, которые также делятся на две большие группы: поточные и блочные, отправитель информации и получатель информации имеют одинаковые ключи, а в алгоритмах ассиметричного шифрования отправитель информации и получатель информации имеют по два ключа каждый – открытый и закрытый.
В алгоритмах симметричного шифрования передача ключей шифрования является слабым местом. Например, если фирма состоит из t филиалов, включая головной офис, то для обеспечения обмена информацией между всеми филиалами необходимо t·(t-1)/2, но время от времени старые ключи необходимо менять на новые ключи, что усложняет работу.
В настоящее время для шифрования открытого текста широкое применение нашли алгоритмы поточного шифрования, которые в отличие от блочного шифрования выполняют преобразование информации, поступающей от источника сообщений как по одному биту, так по 1 байту (8 бит). Таким образом, алгоритм поточного шифрования может преобразовывать поступающую информацию в момент её получения.
Недостатком поточного шифрования, как было отмечено ранее, является необходимость получения нового ключа (гаммы) для шифрования, поступающей информации. Возможно вместо передачи нового ключа произвести его вычисление, как на стороне отправителя, так и получателя информации по одинаковому алгоритму путем матричных преобразований на основе передаваемых коэффициентов.
То есть вместо передачи ключа произвести обмен коэффициентами между отправителем и получателем информации и на их основе c помощью матричных преобразований вычислять ключи.
Известны алгоритм шифрования RC-4 – класс алгоритмов, определяемых размером его блока или слова – параметром n. В том случае, когда n = 8 бит или 1 байт, то тогда внутреннее состояние RC-4(S-бокс) состоит из массива размером 28 слов, то есть внутреннее состояние включает 256 элементов (0,1,2,….255).
Наиболее близким аналогом к заявляемому изобретению является способ шифрование, известный из патента RU 2783406, в котором рассматривается побитовое поточное шифрование с использованием матричных преобразований.
Однако при использование данного технического решения каждый символ открытого текста нужно переводить в набор нулей и единиц в соответствии с используемым алфавитом и складывать по модулю два с набором нулей и единиц матрицы SQL и отправлять получателю данную информацию.
Преимуществом заявляемого изобретения является использование стандартной таблицы кодирования символов ASCII при поточном шифровании.
Техническим результатом изобретения является упрощение процесса шифрования и расшифрования текста, сокращение временных и вычислительных затрат.
В предлагаемой заявке нет необходимости каждый символ открытого текста переводить в набор нулей и единиц – каждому символу соответствует своё число в двоичной системе счисления, которое будет суммироваться по модулю два с элементом результирующей матрицы SQL, также представленным в соответствующей форме и отправляться получателю информации.
Сущность заявляемого изобретения заключается в том, что в способе побайтной передачи информации с помощью поточного шифрования создают матрицу состояния SQ, записывая числа по порядку от 0 до 255; выбирают вариант построения вспомогательной матрицы-ключа KQ; производят вычисление вспомогательной матрицы-ключа KQ; производят вычисление результирующей матрицы SQL по формуле: SQL = SQ ⊕ KQ mod 256. Элементы результирующей матрицы SQL(sqlij) и будут являться гаммой(ключом) используемыми при сложении с символами открытого текста. Полученные числовые значения элементов матрицы SQL переводят в двоичную систему счисления, соответствующую таблице символов ASCII, символы открытого текста записывают с помощью таблицы символов ASCII, получая значение символа Xi, соответствующее символу открытого текста, записанное в двоичной системе счисления и далее суммируют по модулю два один байт символов ASCII, соответствующий символу открытого текста Xi с элементом матрицы sqlij, получая зашифрованное сообщение Yi, передают зашифрованное сообщение Yi.
Применение n = 8 даёт возможность использовать таблицу символов, например, ASCII, в которой символы – буквы алфавита, цифры, арифметические операции, и другие знаки также представлены в виде 8 битовых значений, например символ A – 01000001, символ B – 01000010, символ C – 01000011 и так далее.
С другой стороны, с помощью подхода, основанного на матричных преобразованиях [Дедов О.П. Применение матричного подхода к поточному шифрованию. Электронный научный журнал «E-Scio.ru», 2021.-5с, далее – Источник 1] возможно сформировать результирующую матрицу, элементы которой являются гаммой (ключом), также состоящую из 256 чисел, записанных в виде 8 битовых значений символов: 0 – 00000000, 1 – 00000001, 2 – 00000010 и т.д., и суммируя символы открытого текста и вычисленные с помощью матричных преобразований элементы результирующей матрицы (гаммы), по модулю два производить побайтовое шифрование открытого текста.
Заявляемое изобретение поясняется фигурами 1-2, на которых показаны:
- фиг. 1 – схема алгоритма поточного шифрования;
- фиг. 2 – блок-схема предлагаемого алгоритма поточного шифрования.
На фигуре 1 Xi i-ый байт открытого текста и sqlij элемент матрицы SQL, записанный в виде одного байта, находящийся в ячейке – Ki, где 0 ≤ i<≤255.
SQL – результирующая матрица, элементы которой sqlij [Источник 1, С.А.Белецкий, О.П.Дедов, С.И.Журавлёв. Построение многослойной и бесконечной гаммы для поточного шифрования. Промышленные АСУ и Контроллеры. DOI: 10.25791/ asu.10.2022.1392 стр.39-43 – далее Источник 2] вычисляются по формуле
SQL= SQ + KQ mod 2n, (1)
где SQ – матрица состояния;
КQ – матрица-ключа;
SQL – результирующая матрица, элементы которой, переведённые в двоичную систему счисления, будут выступать в роли гаммы.
Причём в Источнике 1 было показано, что при n = 4 параметр N, определяющий размер квадратных матриц SQ, КQ и SQL, вычисляется по формуле (1).
N= 24/2= 22 = 4, (2)
То есть матрицы SQ, КQ и SQL при n = 4 являются квадратными матрицами размера 4×4, а при n = 8 N будет равно 16, а это значит, что матрицы SQ, КQ и SQL будут квадратными матрицами размера 16×16, и каждая из них содержат по 256 элементов (чисел). Каждый элемент матрицы SQL (sglij) может быть представлен как последовательность восьми нулей и единиц, то есть одним байтом.
Таким образом, каждый символ открытого текста Xi c помощью таблицы символов ASCII, записанный в виде последовательности 8 битов, то есть одним байтом, может быть сложен по модулю два с элементами матрицы SQL (sglij), каждый из которых также записан виде восьми битовой последовательности (одним байтом), а в результате данного сложения получается Yi – зашифрованное значение Xi ,которое поступает вход получателя информации и расшифровывается там в обратном порядке, то есть сложением по модулю два с элементами результирующей матрицы SQL(sglij), вычисленным по аналогичному алгоритму.
В Источнике 2 было рассмотрено вычисление квадратных матриц SQ, КQ и SQL для n=4 и следовательно N= 24/2= 22 = 4, и матрицы SQ, КQ , SQL имеют размер 4×4 , различными способами.
То есть на первом этапе есть матрица состояния S (в алгоритме RС 4) и матрица SQ в предлагаемом алгоритме шифрования (n = 4 и 24 = 16), которая включает 16 элементов числа – 0,1,2,….15 , расставленные по порядку. На втором этапе вычисляется матрица ключ KQ – аналог матрицы ключа К в алгоритме шифрования RС 4 (различными способами [Источник 2]). На третьем этапе вычисляется результирующая матрица SQL как сумма матриц SQ и КQ. Все матрицы SQ, КQ и SQL в [Источник 2] имеют одинаковый размер – 4×4.
Матричный подход позволяет вычислять матрицу-ключ KQ различными способами [Источник 2], например, как произведение матрицы-столбца размера 4×1, на матрицу строку размера 1×4 по модулю 2n , а элементы матрицы столбца и матрицы строки могут выбираться также различными способам, либо с помощью датчика случайных чисел ДСЧ (среди чисел, находящихся в диапазоне от 1 до 2n -1) или выбираться как произведение матрицы-столбца на матрицу-строку (обе матрицы получены из матрицы состояний S( RC-4) или SQ [Источники 1, 2].
В Источниках 1,2 и наиболее близком аналоге рассмотрено вычисление матриц SQ, KQ, SQL для n=4.
Так как n = 4, то все вычисления будут производиться по модулю 24 , то есть по модулю 16.
При n = 4 матрица состояний SQ, состоит из 24 элементов и имеет вид:
SQ =
Вычислим матрицу-ключа KQ одним из способов, рассмотренных в Источнике 2, как произведение второго столбца матрицы SQ на третью строку данной матрицы по модулю 16, то есть
KQ = ×( 8 9 10 11) = mod 16 (3)
Элементы результирующей матрицы SQL будут вычисляться как сумма соответствующих элементов матриц SQ и KQ по модулю 16.
SQL = SQ ⊕ KQ = mod 16
Данную результирующую матрицу SQL, полученную в результате однократного сложения матриц SQ и KQ назовём однослойной [Источник 2] и обозначим как SQL1. В Источнике 2 показано вычисление двух, трёхслойных матриц и многослойных матриц различными способами, в том числе умножением матрицы-ключа KQ на константу µ ( 1 < µ ≤ 15 ) n=4.
Матрица SQL2 будет вычисляться по формуле (1) и называется двухслойной матрицей.
SQL2 = SQL1 ⊕ KQ mod 16
SQL2 =
В том случае, когда происходит передача информации по одному байту, то есть при n = 8 , все рассматриваемые матрицы: матрица состояний SQ, матрица ключа KQ и результирующая матрица SQL будут иметь размерность 16×16 и состоять из 256 элементов каждая. Матрица состояния SQ, состоящая из 256 элементов, записанных по порядку будет иметь вид:
Предположим, что матрица KQ (для n = 8) вычисляется аналогично вычислению KQ (для n = 4), как в рассмотренном ранее примере, то есть как произведение второго столбца матрицы SQ - ST(2,1) на третью строку STR(3,1) данной матрицы, но по модулю 256 вместо 16 (для n = 4).То есть
KQ= ST(2) * STR(3)= *[32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47] mod 256 (4)
Таким образом, матрица KQ будет иметь вид:
Тогда матрица SQL которая равна сумме матриц SQ и KQ вычисляется по формуле
SQL = SQ ⊕ KQ mod 256, (5)
примет следующий вид:
В общем виде матрица SQLi вычисляется по формуле:
SQLi= SQLi-1 + KQ mod 16, (6)
Каждый элемент данной матрицы sqlij, записанный в двоичном виде с помощью 8 бит, поступает на первый вход сумматора по модулю два (фиг.1), где складывается с символом открытого текста Xi, который также записан в виде 8 бит (при применении ASCII), и на выходе сумматора получается зашифрованный символ Yi, а дешифрование производится в обратном порядке на стороне получателя информации.
Таким образом, каждый символ открытого текста может быть зашифрован и передан получателю информации.
Заметим, что при шифровании можно использовать элементы матрицы sqlij как по порядку, то есть начиная с первого sql11 (первый символ открытого текста будет суммироваться по модулю два с sql11) и заканчивая последним sql255,255 или, как было указано в Источнике 1, элементы данной матрицы могут быть использованы в обратном порядке, то есть от sql255,255 до sql11.
Кроме этого при применении матричного подхода, возможно, использовать группу элементов (40-100) матрицы SQL1 для шифрования части открытого текста, а потом перейти к таким же элементам матрицы SQL2 для шифрования второй части открытого текста т.д.
Данный алгоритм может быть реализован следующим образом. Во- первых, можно заранее обменяться значениями матриц SQL – на определённый срок (день, месяц) между отправителем и получателем информации. Во- вторых, на этапе «рукопожатие» («Handshakes») (фиг. 2) между отправителем и получателем информации происходит обмен коэффициентами, в качестве которых могут применяться числа, либо вырабатываемые с помощью ДСЧ выбираются элементы из чисел от 1 до 255, соответствующие элементам матрицы-столбца (16 чисел) и матрицы строки (16 чисел), а матрица KQ вычисляется как их произведение, либо как в рассмотренных ранее примерах можно указать номер столбца (α1) и номер строки (α2), при умножении которых по модулю 256 получается матрица ключа KQ, также можно указать значение коэффициента µ (α3), который может применяться при вычислении матрицы KQ [Источник 2] (в данной работе он был равен 5), а также указать количество элементов (α4), используемых при шифровании, если принято решение использовать при шифровании 40-100 символов матрицы SQL1 , а потом перейти к матрице SQL2 и далее к матрице SQLi и в этом случае необходимо указать номер элемента Ki (α5) с которого начинается отчёт. Все эти коэффициенты могут быть сведены в таблицу №1.
Таблица № 1.
Заметим, что в качестве коэффициента µ могут быть использованы числа, входящие в матрицу-столбец (α1) или матрицу-строку (α2).
На фигуре 2 представлена блок-схема алгоритма поточного шифрования, где:
- блок № 1– блок инициализации матрицы SQ;
- блок № 2 – программа вычисления матрицы ключа KQ;
- блок № 3 – вычисление результирующей матрицы состояний SQL;
- блок № 4 – счётчик элементов результирующей матрицы состояний SQL;
- блок № 5 – перевод из десятичной системы счисления в двоичную систему счисления;
- блок № 6 – открытый текст;
- блок №7 – блок перевода открытого теста в символы ASCII.
Способ осуществляют следующим образом.
Цикл работы состоит из нескольких этапов. На первом этапе производится инициализация матрицы SQ (блок № 1), то есть запись чисел в данную матрицу по порядку от 0 до 255 (при n = 8) и вычисление матрицы-ключа KQ на основе коэффициентов из таблицы №1 или другим способом, например, с помощью ДСЧ выбираются элементы из чисел от 1 до 255, соответствующие элементам матрицы-столбца (16 чисел) и матрицы-строки (16 чисел), а матрица KQ вычисляется как их произведение (3,4).
На втором этапе по формуле (3) с учётом вычисленных значений матрицы KQ и значений матрицы SQ вычисляется матрица SQL.
На третьем этапе происходит перевод числовых значений элементов матрицы SQL в двоичную систему счисления, соответствующую таблице символов ASCII.
На четвёртом этапе символы открытого текста записываются с помощью таблицы символов ASCII (блок № 6 и блок № 7), и на выходе блока № 7 получают значение символа Xi, соответствующее символу открытого текста, но записанное в двоичной системе счисления.
На пятом этапе после суммирования по модулю два 8 бит символов, поступивших из блока №5, и 8 бит символов, поступивших из блока № 7, получают зашифрованное сообщение Yi.
Нет проблемы возникающей из-за наличия байтов вне диапазона. Все байты, как преобразующие символы открытого текста, так и байты для шифрования (элементы матрицы SQL) находятся в диапазоне от 0 до 255, и после сложения по модулю два они также будут находиться в этом диапазоне. То есть, производится сложение слова из 8бит(1 байт), соответствующего символу открытого текста с элементом матрицы sqlij ,также состоящим из 8 бит по модулю два и в результате получается слово из 8 бит(1байт).
В том случае, если размер открытого текста, то есть количество символов открытого текста равно 256, то для их шифрования достаточно элементов матрицы SQL1 (число которых равно 256), а если больше, чем 256 ,то по команде со счётчика элементов будет сформирована новая матрица SQL2 (число элементов которой также равно 256) и т.д.
Кроме этого возможно использование определённого количества символов (40-100) из матрицы SQL1, а потом из матрицы SQL2 и тд., что сделает невозможным расшифрование зашифрованного текста.
В заявляемом способе производятся матричные операции, не требующие больших вычислительных и, как следствие, временных затрат: матрицы не возводятся в степень и нет вычисления обратных матриц (которые могут и не существовать), что значительно упрощает применение данного метода в реальной практике.
название | год | авторы | номер документа |
---|---|---|---|
Способ генерации гаммы, используемый при поточном шифровании | 2021 |
|
RU2783406C1 |
СПОСОБ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ЦИФРОВОЙ ИНФОРМАЦИИ В ВИДЕ УЛЬТРАСЖАТОГО НАНОБАР-КОДА (ВАРИАНТЫ) | 2013 |
|
RU2656734C2 |
СПОСОБ ПОТОЧНОГО ШИФРОВАНИЯ ДАННЫХ | 2001 |
|
RU2239290C2 |
СПОСОБ КРИПТОЗАЩИТЫ СИСТЕМЫ ТЕЛЕКОММУНИКАЦИОННЫХ ТЕХНОЛОГИЙ | 1995 |
|
RU2077113C1 |
СПОСОБ ПОТОЧНОГО ШИФРОВАНИЯ ДАННЫХ | 2009 |
|
RU2423799C2 |
СПОСОБ СИММЕТРИЧНОГО ШИФРОВАНИЯ НА ОСНОВЕ СМЕШАННОЙ СИСТЕМЫ СЧИСЛЕНИЯ | 2009 |
|
RU2429575C2 |
СПОСОБ ПОТОЧНОГО ШИФРОВАНИЯ ДАННЫХ | 2005 |
|
RU2291578C1 |
Повышение неоднозначности | 2016 |
|
RU2737917C1 |
Способ блочного шифрования с использованием Кронекерова произведения инволютивных матриц | 2022 |
|
RU2793408C1 |
Способ кодирования цифровой информации в виде многомерного нанобар-кода | 2020 |
|
RU2777708C2 |
Изобретение относится к способам поточного шифрования. Техническим результатом изобретения является сокращение времени шифрования и расшифрования текста. Создают матрицу состояния SQ, записывая числа по порядку от 0 до 255. Выбирают вариант построения вспомогательной матрицы-ключа KQ. Производят вычисление вспомогательной матрицы-ключа KQ. Производят вычисление результирующей матрицы состояний SQL по формуле: SQL = SQ ⊕ KQ mod 256. Переводят числовые значения элементов матрицы SQL в двоичную систему счисления, соответствующую таблице символов ASCII. Символы открытого текста записывают с помощью таблицы символов ASCII, получая значение символа Xi, соответствующее символу открытого текста, записанное в двоичной системе счисления. Суммируют по модулю два один байт символов ASCII и один байт элемента матрицы SQL и один байт символов Xi, получая зашифрованное сообщение Yi. Передают зашифрованное сообщение Yi. 1 з.п. ф-лы, 2 ил., 1 табл.
1. Способ побайтной передачи информации с помощью поточного шифрования, характеризующийся тем, что:
- создают матрицу состояния SQ, записывая числа по порядку от 0 до 255;
- выбирают вариант построения вспомогательной матрицы-ключа KQ;
- производят вычисление вспомогательной матрицы-ключа KQ;
- производят вычисление результирующей матрицы состояний SQL по формуле:
SQL = SQ ⊕ KQ mod256;
- переводят числовые значения элементов матрицы SQL в двоичную систему счисления, соответствующую таблице символов ASCII;
- символы открытого текста записывают с помощью таблицы символов ASCII, получая значение символа Xi, соответствующее символу открытого текста, записанное в двоичной системе счисления;
- суммируют по модулю два один байт символов ASCII матрицы SQL и один байт символов Xi, получая зашифрованное сообщение Yi.
- передают зашифрованное сообщение Yi.
2. Способ по п.1, характеризующийся тем, что KQ вычисляют с помощью датчика случайных чисел.
Способ генерации гаммы, используемый при поточном шифровании | 2021 |
|
RU2783406C1 |
РЯБКО Б.Я | |||
и др., Криптография в информационном мире, Горячая линия-Телеком, 2018 г., с | |||
Питательное приспособление к трепальным машинам для лубовых растений | 1922 |
|
SU201A1 |
СПОСОБ СКРЫТОЙ ПЕРЕДАЧИ ЗАШИФРОВАННОЙ ИНФОРМАЦИИ ПО МНОЖЕСТВУ КАНАЛОВ СВЯЗИ | 2011 |
|
RU2462825C1 |
US 5297208, 22.03.1994. |
Авторы
Даты
2024-01-11—Публикация
2023-02-14—Подача