СПОСОБ ШИФРОВАНИЯ N-БИТОВОГО БЛОКА ДАННЫХ М
METHOD OF ENCRYPTING N-BIT UNIT M

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для защиты информации, передаваемой по телекоммуникационным сетям путем шифрования сообщений (информации) (Толкование используемых в описании терминов приведено в Приложении 1).
m
m
m
Известны способы шифрования электронных сообщений, представленных в цифровом виде, а именно, в виде двоичных данных, выполняемые по секретному ключу, например способ, реализованный в виде алгоритма блочного шифрования RC5 [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, 758 p.; см. с.344-346]. Способ включает в себя формирование секретного ключа в виде совокупности подключей, разбиение n-битового двоичного блока информации на n/2-битовые информационные подблоки А и В и поочередное преобразование этих подблоков. Подблоки преобразуются путем последовательного выполнения над ними линейных и нелинейных операций, в качестве которых используются операции суммирования по модулю 2, где m=n/2=8, 16, 32, 64, поразрядного суммирования по модулю 2 и циклического сдвига влево, причем число бит, на которое сдвигается преобразуемый подблок, зависит от значения другого подблока. Последнее свойство является характерным для способа RC5 и определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Подблок информации, например подблок В, преобразуют путем наложения подблока А на подблок В с помощью операции поразрядного суммирования по модулю 2 В:=В⊕А. После этого над подблоком В выполняют операцию циклического сдвига влево на число бит, равное значению подблока А: В:=В<<<А. Затем над подблоком В и одним из подключей К выполняют операцию суммирования по модулю 2, где m - длина подблока в битах: В:=(В+К)mod2. После этого аналогичным образом преобразуется подблок А. В зависимости от размеров ключа выполняется несколько таких итераций преобразования обоих подблоков. Данный способ обеспечивает достаточно высокую скорость шифрования при программной реализации. Недостатком способа шифрования RC5 является невысокая стойкость к дифференциальному и линейному видам криптоанализа [Kaliski B.S., Yin Y.L. On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm // Advances in Cryptology - CRYPTO 95. Proceedings. Springer-Verlag, 1995. P.171-184].
1
2
k
1
2
k
1
1
i-1
i
i
1
2
k
Известен способ шифрования n-битовых блоков данных [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York,1996, 758 p; см. с.193-194] путем генерации секретного ключа К, разбиения сообщения М на n-битовые блоки данных М, М, …, M, где k - число блоков в сообщении; n≥64 бит, и последующего шифрования блоков данных M, M, …, M, причем процесс шифрования выполняют следующим путем. Шифруют блок М по секретному ключу, получая блок криптограммы С, затем, начиная со значения i=2 и до значения i=k, суммируют с помощью операции поразрядного суммирования блок криптограммы C и блок M, полученный в результате суммирования, блок данных шифруют по секретному ключу, получая в результате текущий блок криптограммы C. Совокупность блоков криптограммы С, С, …, Cпредставляет собой криптограмму, содержащую сообщение М в скрытом виде. Извлечение сообщения М из криптограммы практически возможно только с использованием секретного ключа, использованного при шифровании, за счет чего достигается защита информации, содержащейся в сообщении М, при его передаче по открытым каналам связи. Данный способ обеспечивает улучшение статистических свойств криптограммы, однако он имеет недостаток, состоящий в том, что теряется возможность независимого расшифрования отдельных блоков криптограммы.
Близким аналогом к заявляемому способу шифрования n-битового блока двоичных данных М является способ, описанный в патенте №2459275 [Молдовян А.А., Молдовян Н.А. Способ блочного шифрования сообщения М, представленного в двоичном виде. Патент №2459275. Опубл. 20.08.2012].
i
Наиболее близким по своей технической сущности к заявляемому способу шифрования n-битового блока двоичных данных М является частный вариант реализации способа по патенту №2459275, приведенный в примере 1 описания этого патента. В указанном частном способе шифрование 64-битового блока данных M осуществляют, выполняя следующую последовательность действий:
1. Формируют секретный ключ путем генерации подключей K, Q (Q≠K) и R (R≠K; R≠Q), где Q и R - 64-битовые подключи; K - 128-битовый подключ.
i
2. Формируют вспомогательный 64-битовый блок данных T.
i
Q
i
M
M
Q
i
3. Шифруют 64-битовый блок данных M с помощью процедуры блочного шифрования Е по подключу Q, в результате чего получают блок данных E(M), который представляет собой вспомогательную криптограмму C, т.е. на этом шаге осуществляется формирование 64-битовой вспомогательной криптограммы C=E(M).
i
R
i
T
T
R
i
4. Шифруют вспомогательный 64-битовый блок данных T с помощью процедуры блочного шифрования Е по подключу R, в результате чего получают блок данных E(T), который представляет собой вспомогательную криптограмму C, т.е. на этом шаге осуществляется формирование 64-битовой вспомогательной криптограммы C=E(T).
i
M
T
i
i
i
M
T
Q
i
R
i
5. Формируют 128-битовый блок данных B путем объединения вспомогательных криптограмм C и C (т.е. путем объединения преобразованных 64-битовых блоков M и T) в единый 128-битовый блок данных B=C||C=E(M)||E(T).
i
6. Шифруют 128-битовый блок данных B с помощью процедуры блочного шифрования F по подключу К:
i
K
i
K
Q
i
R
i
C=F(B)=F(E(M)||E(T)).
M
M
Q
T
T
R
M
T
Таким образом, способ-прототип включает в себя формирование секретного ключа, включающего подключи Q и R, формирование вспомогательного n-битового блока двоичных данных Т, формирование n-битовой вспомогательной криптограммы C путем выполнения над М операции блочного шифрования Е в зависимости от Q по формуле C=E(M), формирование n-битовой вспомогательной криптограммы C путем выполнения над Т операции блочного шифрования Е в зависимости от R по формуле C=E(T), формирование криптограммы С в зависимости от секретного ключа и вспомогательных криптограмм C и C.
M
T
M
T
M
T
T
R
T
M
M
T
Способ-прототип позволяет реализовать защиту информации с использованием механизма обманных ловушек, который состоит в том, что потенциальному злоумышленнику подставляется часть секретного ключа, включающая подключ R, в качестве ключа расшифрования, а в качестве вспомогательного n-битового блока двоичных данных Т используется n-битовый блок фиктивного сообщения. Блок криптограммы С расшифровывается путем его преобразования по дополнительному ключу, приводящего к получению промежуточной 2n-битовой криптограммы С*, представляющей собой конкатенацию двух n-битовых вспомогательных криптограмм C и C: С*=C||C. Вспомогательные криптограммы C и C составляют правую и левую половины промежуточной 2n-битовой криптограммы С*. По подключу R выполняется расшифрование правой n-битовой вспомогательной криптограммы C путем выполнения операции блочного преобразования D, обратной к операции блочного шифрования Е, т.е. по формуле Т=D(C). Аналогичная процедура расшифрования выполняется с использованием подключа К и левой n-битовой строки C промежуточной 2n-битовой криптограммы С*=C||C. Недостатком способа прототипа является то, что различные части промежуточной 2n-битовой криптограммы С* используются при восстановлении блока данных М и блока фиктивного сообщения Т. Это демаскирует факт наличия в блоке криптограммы С блока данных М, что снижает уровень защищенности информации, шифруемой с использованием способа-прототипа.
Задачей заявленного нового технического решения является разработка способа шифрования блока данных М, представленного в виде n-битовой строки, обеспечивающего повышение уровня защищенности информации за счет повышения эффективности маскировки факта наличия n-битового блока данных М в блоке криптограммы С. Повышение эффективности маскировки достигается за счет того, что при выполнении процедуры расшифрования осуществляется преобразование 2n-битовой криптограммы С непосредственно в n-битовую вспомогательную криптограмму, зависящую от ключа, использованного при преобразовании 2n-битовой криптограммы С, и использование всех битов вспомогательной криптограммы при выполнении процедур восстановления как n-битового блока данных М, так и вспомогательной n-битовой строки Т.
Техническим результатом нового способа шифрования n-битового блока данных М является повышение уровня защищенности информации, шифруемой с его применением.
M
M
Q
T
T
R
M
T
1
2
M
1
T
2
Указанный технический результат достигается тем, что в способе шифрования n-битового блока данных М, заключающемся в формировании секретного ключа путем генерации подключей Q и R, формировании вспомогательного n-битового блока данных Т, формировании n-битовой вспомогательной криптограммы C путем выполнения над М операции блочного шифрования Е в зависимости от Q по формуле C=E(М), формировании n-битовой вспомогательной криптограммы C путем выполнения над Т операции блочного шифрования Е в зависимости от R по формуле C=E(T), формировании криптограммы С в зависимости от секретного ключа и вспомогательных криптограмм C и C, кроме того, при формировании секретного ключа дополнительно генерируют вспомогательные подключи в виде взаимно простых многоразрядных двоичных чисел m и m, а криптограмму С формируют в виде решения системы двух сравнений С≡Cmodm и С≡Cmodm с неизвестным С.
1
2
Новым также является то, что, по крайней мере, одно из многоразрядных двоичных чисел m и m является простым.
1
2
Использование простых чисел в качестве модулей системы сравнений упрощает процедуру формирования секретного ключа, поскольку устраняется необходимость выполнения алгоритма Евклида для проверки условия взаимной простоты МДЧ m и m.
M
T
2
Благодаря указанной новой совокупности существенных признаков за счет формирования n-битовых вспомогательных криптограмм C и Cобеспечивается использование всех битов вспомогательной криптограммы при выполнении процедуры расшифрования как блока данных М, так и вспомогательного n-битового блока данных Т, в качестве которой может быть применен n-битовой блок некоторого фиктивного сообщения. Это обеспечивает эффективную маскировку факта наличия n-битового блока данных М в блоке криптограммы С при ее расшифровании криптограммы С потенциальным нарушителем по подключам Q и m, поскольку процедура расшифрования выполняется по одной и той же формуле как при расшифровании блока данных М, так и при расшифровании блока фиктивного сообщения Т.
1
Q
1
2
R
2
Корректность заявленного способа шифрования n-битового блока двоичных данных М состоит в том, что по криптограмме С может быть восстановлен n-битовый блок двоичных данных М по подключам Q и m по формуле M=D(Cmodm), где D - операция блочного расшифрования, обратная операции блочного шифрования Е, и вспомогательный n-битовый блок данных Т по подключам R и m по формуле Т=D(Cmodm).
1
Действительно, при выполнении процедуры расшифрования по подключам Q и m имеем
<mtable columnalign="left"><mtr><mtd><mi>C</mi><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><mo>=</mo><msub><mi>C</mi><mi>M</mi></msub><mo>⇒</mo></mtd></mtr><mtr><mtd><mo>⇒</mo><mi>D</mi><mmultiscripts><mo stretchy="false">(</mo><mi>C</mi><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><mo stretchy="false">)</mo><mprescripts /><mi>Q</mi><none /></mmultiscripts><mo>=</mo><msub><mi>D</mi><mi>Q</mi></msub><mo stretchy="false">(</mo><msub><mi>C</mi><mi>M</mi></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>D</mi><mi>Q</mi></msub><mo stretchy="false">(</mo><msub><mi>E</mi><mi>Q</mi></msub><mo stretchy="false">(</mo><mi>M</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><msubsup><mi>E</mi><mi>Q</mi><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mo stretchy="false">(</mo><msub><mi>E</mi><mi>Q</mi></msub><mo stretchy="false">(</mo><mi>M</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><mi>M</mi><mo>,</mo></mtd></mtr></mtable>
2
а при выполнении процедуры расшифрования по подключам R и m имеем
<mtable columnalign="left"><mtr><mtd><mi>C</mi><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub><mo>=</mo><msub><mi>C</mi><mi>T</mi></msub><mo>⇒</mo></mtd></mtr><mtr><mtd><mo>⇒</mo><mi>D</mi><mmultiscripts><mo stretchy="false">(</mo><mi>C</mi><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub><mo stretchy="false">)</mo><mprescripts /><mi>R</mi><none /></mmultiscripts><mo>=</mo><msub><mi>D</mi><mi>R</mi></msub><mo stretchy="false">(</mo><msub><mi>C</mi><mi>T</mi></msub><mo stretchy="false">)</mo><mo>=</mo><msub><mi>D</mi><mi>R</mi></msub><mo stretchy="false">(</mo><msub><mi>E</mi><mi>R</mi></msub><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><msubsup><mi>E</mi><mi>R</mi><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mo stretchy="false">(</mo><msub><mi>E</mi><mi>R</mi></msub><mo stretchy="false">(</mo><mi>T</mi><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mo>=</mo><mi>T</mi><mo>.</mo></mtd></mtr></mtable>
Далее реализуемость и корректность заявленного способа шифрования n-битового блока двоичных данных М иллюстрируется частными примерами его реализации.
1
2
1
2
1
2
1
2
1
2
1
2
M
1
2
M
Q
Пример 1. Шифрование 64-битового блока двоичных данных М (n=64). Формируют секретный ключ в виде подключей Q, R, m и m, причем подключ Q формируют в виде 128-битовой строки, представляющей собой конкатенацию двух нечетных 64-разрядных двоичных чисел q и q, т.е. Q=q||q, где знак || обозначает операцию конкатенации, подключ R формируют в виде 128-битовой строки, представляющей собой конкатенацию двух нечетных 64-битовых двоичных чисел r и r, т.е. R=r||r, подключи m и m формируют в виде двух случайных 65-битовых двоичных чисел, удовлетворяющих условию взаимной простоты, т.е. их наибольший общий делитель равен единице. Затем формируют вспомогательный 64-битовый блок данных Т и 64-битовую вспомогательную криптограмму C путем выполнения над блоком данных М операции блочного шифрования Е в зависимости от подключа Q=q||q по формуле C=E(M), где операция блочного шифрования описывается следующим алгоритмом:
M
1. Установить значение счетчика i←0 и переменной C←М, где знак ← обозначает операцию присваивания.
M
M
1
M
2
64
<29<
<29<
2. Сформировать 64-битовую строку C в виде МДЧ, вычисленного по формуле C←(q(C⊕q)mod2), где (…) обозначает операцию циклического сдвига битовой строки (...) на 29 бит влево; знак ⊕ обозначает операцию поразрядного суммирования по модулю 2.
M
M
2
M
1
64
<17<
<17<
3. Преобразовать 64-битовую строку C по формуле C←(q(C⊕q)mod2), где (…) обозначает операцию циклического сдвига битовой строки (…) на 17 бит влево.
M
Q
4. Прирастить значение счетчика i: i←i+1. Если i<16, то перейти к шагу 2, в противном случае текущее значение C взять в качестве выходного значения операции блочного шифрования E, выполненной над 64-битовым блоком двоичных данных М.
T
1
2
T
R
Затем формируют 64-битовую вспомогательную криптограмму Cпутем выполнения над вспомогательным 64-битовым блоком двоичных данных Т операции блочного шифрования Е в зависимости от подключа R=r||r no формуле C=E(T) в соответствии со следующим алгоритмом:
T
1. Установить значение счетчика i←0 и переменной C←Т.
T
T
1
T
2
64
<29<
2. Сформировать 64-битовую строку C в виде МДЧ, вычисленного по формуле C←(r(C⊕r)mod2).
T
T
2
T
1
64
<17<
3. Преобразовать 64-битовую строку C по формуле C←(r(C⊕r)mod2).
T
R
4. Прирастить значение счетчика i: i←i+1. Если i<16, то перейти к шагу 2, в противном случае текущее значение C взять в качестве выходного значения операции блочного шифрования E, выполненной над вспомогательным 64-битовым блоком данных Т.
M
T
После формирования вспомогательных криптограмм C и C, рассматривая их как 64-битовые МДЧ, формируют криптограмму С в виде решения следующей системы из двух линейных сравнений с неизвестным значением С:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><mi>C</mi><mo>≡</mo><msub><mi>C</mi><mi>M</mi></msub><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mi>C</mi><mo>≡</mo><msub><mi>C</mi><mi>T</mi></msub><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub></mtd></mtr></mtable></mrow></mrow>
.
1
2
1
M
2
T
1
2
Поскольку m и m представляют собой 65-битовые взаимно простые числа, то m>C; m>C и в соответствии с китайской теоремой об остатках указанная система имеет единственное решение С<mm. Данное решение берется в качестве криптограммы С и вычисляется по следующей формуле [Молдовян Н.А. Теоретический минимум и алгоритмы цифровой подписи. СПб., БХВ-Петербург, 2010. - 304 с.; см. с.15-16]:
<mrow><mi>C</mi><mo>=</mo><mo stretchy="false">(</mo><msub><mi>C</mi><mi>M</mi></msub><msub><mi>m</mi><mn>2</mn></msub><mo stretchy="false">(</mo><msubsup><mi>m</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><mo stretchy="false">)</mo><mo>+</mo><msub><mi>C</mi><mi>T</mi></msub><msub><mi>m</mi><mn>1</mn></msub><mo stretchy="false">(</mo><msubsup><mi>m</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><msub><mi>m</mi><mn>2</mn></msub></mrow>
.
1
2
1
2
Q
M
Q
64
<mrow><msubsup><mi>q</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>q</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>r</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>r</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
Доказательство корректности данного частного варианта реализации заявленного способа шифрования n-битового блока двоичных данных М доказывается аналогично описанному ранее общему доказательству корректности заявленного способа с учетом того, что для нечетных МДЧ q, q, r, r по модулю 2 существуют и легко вычисляются по расширенному алгоритму Евклида соответствующие обратные значения
,
,
,
, а операция блочного расшифрования D(C), обратная операции блочного шифрования E(M), реализуется следующей процедурой преобразования:
M
1. Установить значение счетчика i←0 и переменной М←C.
>17>
>17>
<mrow><mi>M</mi><mo>←</mo><mi>M</mi><msubsup><mi>q</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msup><mn>2</mn><mrow><mn>64</mn></mrow></msup></mrow>
1
2. Преобразовать 64-битовую строку М, выполняя последовательно вычисления по формулам М←M,
и M←M⊕q⊕, где (…) обозначает операцию циклического сдвига битовой строки (…) на 17 бит вправо.
>29>
>29>
<mrow><mtext>M</mtext><mo>←</mo><msubsup><mrow><mtext>Mq</mtext></mrow><mtext>1</mtext><mrow><mo>−</mo><mtext>1</mtext></mrow></msubsup><msup><mrow><mtext>mod2</mtext></mrow><mrow><mtext>64</mtext></mrow></msup></mrow>
2
3. Преобразовать 64-битовую строку М, выполняя последовательно вычисления по формулам М←M,
и M←M⊕q, где (...)обозначает операцию циклического сдвига битовой строки (...) на 29 бит вправо.
Q
M
4. Прирастить значение счетчика i: i←i+1. Если i<16, то перейти к шагу 2, в противном случае текущее значение М взять в качестве выходного значения операции D, выполненной над 64-битовой вспомогательной криптограммой C.
R
T
R
Аналогично записывается процедура для реализации операции блочного расшифрования D(C), обратная операции блочного шифрования E(Т).
1
2
w
1
2
w
i
i
1
2
i
Рассмотренная частная реализация заявленного способа может быть применена для совместного шифрования двух сообщений Message и Text, каждое из которых, например, имеет размер 64 Кбит. Сообщение Message разбивается на 64-битовые блоки данных M, M, …, M, где w=1000. Сообщение Text разбивается на 64-битовые блоки данных Т, Т, …, T. Поочередно для значений i=1, 2, …, 1000 пары блоков данных (M, T) совместно шифруются в соответствии с описанным примером реализации заявленного способа, в результате чего формируется шифртекст в виде последовательности 128-битовых криптограмм (C||C), i=1, 2, …, 1000.
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
M
1
2
M
Q
Пример 2. Шифрование 128-битового блока двоичных данных М (n=128). Формируют секретный ключ в виде подключей Q, R, m и m, причем подключ Q формируют в виде 256-битовой строки, представляющей собой конкатенацию двух нечетных 128-разрядных двоичных чисел q и q, т.е. Q=q||q, где знак || обозначает операцию конкатенации, подключ R формируют в виде 256-битовой строки, представляющей собой конкатенацию двух нечетных 64-битовых двоичных чисел r и r, т.е. R=r||r, подключи m и m формируют в виде двух случайных простых 129-битовых двоичных чисел, удовлетворяющих условию m≠m (в силу последнего условия m и m являются взаимно простыми МДЧ). Затем формируют вспомогательный 128-битовый блок данных Т и 128-битовую вспомогательную криптограмму C путем выполнения над блоком данных М операции блочного шифрования Е в зависимости от подключа Q=q||q по формуле C=E(M), где операция блочного шифрования описывается следующим алгоритмом:
M
1. Установить значение счетчика i←0 и переменной C←М, где знак ← обозначает операцию присваивания.
M
M
1
M
2
128
<80<
<80<
2. Сформировать 128-битовую строку C в виде МДЧ, вычисленного по формуле C←(q(C⊕q)mod2), где (…) обозначает операцию циклического сдвига битовой строки (…) на 80 бит влево.
M
M
2
M
1
128
<40<
<40<
3. Преобразовать 128-битовую строку C по формуле C←(q(C⊕q)mod2), где (…) обозначает операцию циклического сдвига битовой строки (…) на 40 бит влево.
M
Q
4. Прирастить значение счетчика i: i←i+1. Если i<20, то перейти к шагу 2, в противном случае текущее значение C взять в качестве выходного значения операции блочного шифрования E, выполненной над 128-битовым блоком двоичных данных М.
T
1
2
T
R
Затем формируют 128-битовую вспомогательную криптограмму Cпутем выполнения над вспомогательным 128-битовым блоком двоичных данных Т операции блочного шифрования Е в зависимости от подключа R=r||r по формуле C=E(T) в соответствии со следующим алгоритмом:
T
1. Установить значение счетчика i←0 и переменной C←Т.
T
T
1
T
2
128
<80<
2. Сформировать 128-битовую строку C в виде МДЧ, вычисленного по формуле C←(r(C⊕r)mod2).
T
T
2
T
1
128
<40<
3. Преобразовать 128-битовую строку C по формуле C←(r(C⊕r)mod2).
T
R
4. Прирастить значение счетчика i: i←i+1. Если i<20, то перейти к шагу 2, в противном случае текущее значение C взять в качестве выходного значения операции блочного шифрования E, выполненной над вспомогательным 128-битовым блоком данных Т.
M
T
После формирования вспомогательных криптограмм C и C, рассматривая их как 64-битовые МДЧ, формируют криптограмму С в виде решения следующей системы из двух линейных сравнений с неизвестным значением С:
<mrow><mrow><mo>{</mo><mtable columnalign="left"><mtr><mtd><mi>C</mi><mo>≡</mo><msub><mi>C</mi><mi>M</mi></msub><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><mi>C</mi><mo>≡</mo><msub><mi>C</mi><mi>T</mi></msub><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub></mtd></mtr></mtable></mrow></mrow>
1
2
2
1
1
M
2
T
1
2
Поскольку m и m (m≠m) представляют собой 129-битовые простые числа, то m>C, m>C и в соответствии с китайской теоремой об остатках указанная система имеет единственное решение С<mm. Данное решение берется в качестве криптограммы С и вычисляется по следующей формуле
<mrow><mi>C</mi><mo>=</mo><mo stretchy="false">(</mo><msub><mi>C</mi><mi>M</mi></msub><msub><mi>m</mi><mn>2</mn></msub><mo stretchy="false">(</mo><msubsup><mi>m</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><mo stretchy="false">)</mo><mo>+</mo><msub><mi>C</mi><mi>T</mi></msub><msub><mi>m</mi><mn>1</mn></msub><mo stretchy="false">(</mo><msubsup><mi>m</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msub><mi>m</mi><mn>2</mn></msub><mo stretchy="false">)</mo><mo stretchy="false">)</mo><mi>mod</mi><msub><mi>m</mi><mn>1</mn></msub><msub><mi>m</mi><mn>2</mn></msub></mrow>
1
2
1
2
Q
M
Q
128
<mrow><msubsup><mi>q</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>q</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>r</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
<mrow><msubsup><mi>r</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup></mrow>
Доказательство корректности данного частного варианта реализации заявленного способа шифрования n-битового блока двоичных данных М доказывается аналогично описанному ранее общему доказательству корректности заявленного способа с учетом того, что для нечетных МДЧ q, q, r, r по модулю 2 существуют и легко вычисляются по расширенному алгоритму Евклида соответствующие обратные значения
,
,
,
, а операция блочного расшифрования D(C), обратная операции блочного шифрования E(M), реализуется следующей процедурой преобразования:
M
1. Установить значение счетчика i←0 и переменной М←C.
<40<
>40>
<mrow><mi>M</mi><mo>←</mo><mi>M</mi><msubsup><mi>q</mi><mn>2</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msup><mn>2</mn><mrow><mn>128</mn></mrow></msup></mrow>
1
2. Преобразовать 128-битовую строку М, выполняя последовательно вычисления по формулам M←M,
и М←M⊕q⊕, где (…) обозначает операцию циклического сдвига битовой строки (…) на 40 бит вправо.
>80>
>80>
<mrow><mi>M</mi><mo>←</mo><mi>M</mi><msubsup><mi>q</mi><mn>1</mn><mrow><mo>−</mo><mn>1</mn></mrow></msubsup><mi>mod</mi><msup><mn>2</mn><mrow><mn>128</mn></mrow></msup></mrow>
2
3. Преобразовать 128-битовую строку М, выполняя последовательно вычисления по формулам М←M,
и M←M⊕q, где (…) обозначает операцию циклического сдвига битовой строки (…) на 80 бит вправо.
Q
M
4. Прирастить значение счетчика i: i←i+1. Если i<20, то перейти к шагу 2, в противном случае текущее значение М взять в качестве выходного значения операции D, выполненной над 64-битовой вспомогательной криптограммой C.
1
2
w
1
2
w
i
i
1
2
i
Рассмотренная частная реализация заявленного способа может быть применена для совместного шифрования двух сообщений Message и Text, каждое из которых, например, имеет размер 128 кбайт. Сообщение Message разбивается на 128-битовые блоки данных М, M, …, M, где w=8000. Сообщение Text разбивается на 128-битовые блоки данных Т, Т, …, T. Поочередно для значений i=1, 2, …, 8000 пары блоков данных (M, T) совместно шифруются в соответствии с описанным примером реализации заявленного способа, в результате чего формируется шифртекст в виде последовательности 256-битовых криптограмм (C||C), i=1, 2, …, 8000.
Приведенные примеры показывают, что заявляемый способ шифрования блока данных М, представленного в виде n-битовой строки, функционирует корректно, технически реализуем и позволяет решить поставленную задачу.
Заявляемый способ шифрования блока данных М, представленного в виде n-битовой строки, может быть применен для разработки средств комплексной защиты информации от несанкционированного доступа, обеспечивающих дополнительную защищенность информации за счет навязывания потенциальным злоумышленникам ложных сообщений. Данный способ также может быть применен для защищенной широковещательной рассылки сообщений с управлением доступа к сообщениям со стороны получателей при обеспечении идентичности процедуры расшифрования одной и той же криптограммы. Такие средства защищенной широковещательной рассылки сообщений решают задачу неотслеживаемости графика при передаче информации по телекоммуникационным каналам.
Приложение 1
Толкование терминов, используемых в описании заявки
1. Двоичный цифровой электромагнитный сигнал - последовательность битов в виде нулей и единиц.
2. Параметры двоичного цифрового электромагнитного сигнала: разрядность и порядок следования единичных и нулевых битов.
3. Разрядность двоичного цифрового электромагнитного сигнала - общее число его единичных и нулевых битов, например, число 10011 является 5-разрядным.
4. Битовая строка (БС) - двоичный цифровой электромагнитный сигнал, представляемый в виде конечной последовательности цифр «0» и «1».
5. Секретный ключ - двоичный цифровой электромагнитный сигнал, используемый для формирования подписи к заданному электронному документу. Секретный ключ представляется, например, в двоичном виде как последовательность цифр «0» и «1».
6. Многоразрядное двоичное число (МДЧ) - двоичный цифровой электромагнитный сигнал, интерпретируемый как двоичное число и представляемый в виде последовательности цифр «0» и «1», т.е. в виде битовой строки.
7. Сравнимыми по модулю некоторого числа m называются числа, разность которых делится на число m без остатка или, что то же самое, числа, при делении которых на число m получаются равные остатки. Сравнимость двух МДЧ а и b по модулю m обозначается как а≡bmodm или а≡b(modm), а также как равенство по модулю, т.е. а=bmodm или а=b(modm).
8. Операция умножения двух МДЧ по модулю m выполняется как обычное алгебраическое умножение МДЧ с последующим взятием остатка от деления полученного результата на модуль m.
9. Операция сложения двух МДЧ по модулю m выполняется как обычное алгебраическое сложение МДЧ с последующим взятием остатка от деления полученного результата на модуль m.
-1
-1
-1
-1
10. Каждому МДЧ а, взаимно простому с модулем m, может быть сопоставлен в соответствие единственный элемент а, называемый обратным элементом по отношению к данному элементу, такой, что произведение aa (а значит и аа) сравнимо с единицей по модулю m. Для вычисления обратных значений апо модулю m используется расширенный алгоритм Евклида, детально описанный в книге [Молдовян Н.А. Молдовян А.А. Введение в криптосистемы с открытым ключом. СПб., БХВ - Петербург, 2005. - 288 с.; см. с.78-79].
-1
11. Операция деления МДЧ а на МДЧ b по модулю m выполняется как операция умножения по модулю m МДЧ а на МДЧ b, которое является обратным к МДЧ b по модулю m.
12. Операции сложения и умножения по модулю m являются ассоциативными и коммутативными, а также операция умножения по модулю m по отношению к умножению по модулю m является дистрибутивной.
13. Система из двух линейных уравнений по модулю m с двумя неизвестными имеет единственное решение, если выполняется условие взаимной простоты коэффициентов и модуля m и условие взаимной простоты главного определителя системы и модуля m.