Устройство аутентифицированного шифрования, способ аутентифицированного шифрования и программа для аутентифицированного шифрования

Иллюстрации

Показать все

Изобретение относится к устройствам и способам аутентифицированного шифрования. Технический результат заключается в обеспечении однопроходного и односкоростного аутентифицированного шифрования с возможностью выполнять параллельные обработки, а также полностью выполнять обработки шифрования и расшифрования путем использования только одной функции шифрования. Устройство аутентифицированного шифрования содержит средство аутентифицированного шифрования для применения двухраундовой структуры Фейстеля, использующей функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входным открытому или зашифрованному текстам для генерации посредством этого зашифрованного текста или расшифрованного открытого текста. Средство аутентифицированного шифрования находит фрагмент зашифрованного текста CC[i]=(C[i_1], C[i_2]), отвечающий i-му фрагменту открытого текста MC[i]=(M[i_1], M[i_2]), при разбиении открытого текста на фрагменты по два блока, как: C[i_1]=F_K((N, Tw_i_1), M[i_1]) xor M[i_2]; C[i_2]=F_K((N, Tw_i_2), C[i_1]) xor M[i_1]. 8 н. и 4 з.п. ф-лы, 20 ил.

Реферат

Область техники

[0001] Настоящее изобретение относится к устройству аутентифицированного шифрования для выполнения аутентифицированного шифрования путем использования общего ключа, устройства шифрования, устройства расшифрования, способа аутентифицированного шифрования и программы для аутентифицированного шифрования.

Уровень техники

[0002] Аутентифицированное шифрование (AE) представляет собой способ шифрования открытого сообщения одновременно с присваиванием к нему кода аутентификации сообщения (MAC) путем использования ранее доступного секретного ключа. Использование аутентифицированного шифрования позволяет защитить содержимое (контент) от перехвата и обнаружить несанкционированное манипулирование. При применении аутентифицированного шифрования к каналам связи может быть достигнута надежная защита передаваемого контента.

[0003] Основные ввод и вывод аутентифицированного шифрования будут описаны далее. Два лица, совместно использующие секретный ключ K, будут представляться далее как Алиса и Боб, а сообщение, зашифрованное аутентифицированным шифрованием, предполагается передаваемым от Алисы к Бобу.

[0004] Функция шифрования и функция расшифрования для аутентифицированного шифрования представляются как AEnc_K и ADec_K соответственно. Открытый текст, подлежащий шифрованию, представляется через переменную M, также вводится переменная N, называемая начальным вектором. Начальный вектор N, как правило, является случайным числом с короткой фиксированной длиной или счетчиком, генерируемым Алисой.

[0005] Сначала будет описана обработка шифрования со стороны Алисы. Алиса генерирует начальный вектор N, а затем выполняет (C, T)=AEnc_K(N, M). Здесь AEnc_K называется функцией шифрования, использующей ключ K в качестве параметра, C называется зашифрованным текстом, а T - тегом аутентификации, они являются переменными для обнаружения измененной фиксированной длины. Алиса передает Бобу комбинацию (N, C, T) из начального вектора N, получившегося зашифрованного текста C и результирующего тега аутентификации T.

[0006] Далее будет описана обработка расшифрования со стороны Боба. Здесь информация, которую Боб получает от Алисы, представляется в виде (N’, C’, T’). При получении информации от Алисы Боб выполняет ADec_K(N’, C’, T’) в качестве обработки расшифрования. ADec_K является функцией расшифрования, использующей ключ K в качестве параметра. Если в середине передача данных изменена, и (N’, C’, T’) отличается от (N, C, T), то ADec_K(N’, C’, T’) выводит ¥bot, где ¥bot выбирается в качестве символа, указывающего на изменение. При отсутствии изменения и в случае (N’, C’, T’)=(N, C, T) ADec_K(N’, C’, T’) выводит расшифрованный открытый текст M’, имеющий то же содержимое, что и открытый текст M, зашифрованный Алисой. Таким образом, M расшифрован правильно.

[0007] mВ действительности ввод и вывод включают в себя переменную, называемую во многих случаях заголовком H. Заголовок H не подлежит шифрованию, это информация для аутентификации сообщений, которая используется, например, для представления версии протокола и т. п.

[0008] Вместе с включенным заголовком H функция шифрования является вводом/выводом (C, T)=AEnc_K(N, M, H), зашифровывает открытый текст M и присваивает код аутентификации сообщения к комбинации открытого текста M и заголовка H. Алиса передает Бобу комбинацию (N, H, C, T) из начального вектора N, заголовка H, получившегося зашифрованного текста C и результирующего тега аутентификации T.

[0009] Если ввод/вывод ADec_K(N’, C’, T’, H’) получен, и (N’, C’, T’, H’) отличается от (N, H, C, T), то функция расшифрования выводит символ ¥bot, указывающий на изменение. Когда же полученный набор (N’, C’, T’, H’) не изменен, или устанавливается, что (N’, H’, C’, T’)=(N, H, C, T), Боб на стороне приема может правильно расшифровать M и подтвердить, что заголовок H не изменен.

[0010] Аутентифицированное шифрование с вводом/выводом, дополненным заголовком H, может называться аутентифицированным шифрованием с присоединенными данными (AEAD) и далее будет указываться просто как "аутентифицированное шифрование", если не оговорено иное.

[0011] Один из способов реализации аутентифицированного шифрования основывается на обобщенной композиции. Это способ, использующий комбинацию безопасной системы шифрования и безопасной системы MAC. Например, в известной комбинации Enc-then-Auth для реализации аутентифицированного шифрования с (C, T)=MAC_K2(N, Enc_K1(M)) используются два ключа K1 и K2. В данном случае Enc_XX обозначает функцию шифрования, используемую в системе шифрования, а MAC_XX обозначает заданную функцию MAC, используемую в системе MAC.

[0012] При использовании блочного шифрования, такого как, например, AES (улучшенный стандарт шифрования) шифрование, система шифрования может использовать шифрование AES в режиме счетчика, а система MAC может использовать CMAC-AES (MAC-AES на основе шифра). Кроме того, в качестве способа выполнения аутентифицированного шифрования без использования двух ключей, а путем использования ключа шифрования одного блока имеется известная система аутентифицированного шифрования, называемая режимом CCM (Counter with CBC-MAC) (непатентный документ 1, например).

[0013] Однако, все вышеуказанные способы требуют двухпроходных обработок, включая шифрование и присваивание MAC. То есть данные должны быть полностью сканированы по меньшей мере два раза. Кроме того, когда входной открытый текст состоит из m блоков, для функций шифрования и MAC, используемых в системе CCM, блочное шифрование должно быть вызвано m раз. Таким образом, для обработки аутентифицированного шифрования m-блочного текста блочное шифрование должно быть вызвано 2m раза. То есть функция обработки, такая как функция шифрования или заданная функция MAC, должна быть вызвана дважды на каждый блок открытого текста. Система, в которой функция обработки вызывается дважды для каждого блока, также называется двухскоростной системой. Двухпроходная или двухскоростная система имеет проблему, состоящую в том, что обработка занимает много времени и имеет высокую загрузку.

[0014] Одним из подходов к решению этой проблемы является однопроходная система аутентифицированного шифрования, использующая блочное шифрование.

[0015] Сначала предлагается система аутентифицированного шифрования, называемая режимом OCB, которая описана в патентном документе 1 (которая далее будет называться системой OCB). Система OCB представляет собой систему такого рода, в которой описанное в непатентном документе 2 блочное шифрование, называемое настраиваемым блочным шифрованием, является расширенным.

[0016] Настраиваемое блочное шифрование является системой аутентифицированного шифрования, в которой для шифрования и расшифрования вводится вспомогательная переменная, называемая Tweak. Когда блочный размер составляет n бит, шифрование с настраиваемым блочным шифрованием может быть выражено как “TE_K(Tw, M)=C”, а расшифрование может быть выражено как “TD_K(Tw, C)=M”. Для любой комбинации (K, Tw), TE_K(Tw, *) выполняет подстановку в n-битном пространстве. Его обратная подстановка есть TD_K(Tw, *). Tw обозначает вспомогательную переменную Tweak, а * обозначает переменную. Вспомогательная переменная Tw требуется для расшифрования, но если она реализована, это не влияет на безопасность в настраиваемом блочном шифровании.

[0017] Сначала в системе OCB функция шифрования типового блочного шифрования преобразуется в функцию шифрования настраиваемого блочного шифрования или в Tweak-снабженную функцию шифрования путем использования режима XEX, описанного в непатентном документе 3. Затем для шифрования начального вектора N и открытого текста M=(M[1], M[2], •••, M[m]) вызывается следующая функция TE_K. Каждый M[i] предполагается n-битным блоком. Функция TE_K, используемая в системе OCB, в качестве переменной, соответствующей Tweak, использует переменную (N, i). N обозначает начальный вектор, а i - идентификационный номер блока.

[0018] C[1]=TE_K((N, 1), M[1]),

C[2]=TE_K((N, 2), M[2]),

•••,

C[m]=TE_K((N, m), M[m])

[0019] Тег аутентификации T находится путем вызова той же функции TE_K в виде сообщения следующим образом, например, для SUM=M[1] xor M[2] xor •••• xor M[m], которое является XOR (исключающим ИЛИ) всех блоков открытого текста.

[0020] T=TE_K((N, m+1), SUM)

[0021] Функция TE_K, используемая в системе OCB, реализуется путем добавления Tw = (N, i) и последовательности mask_K(N, i), вычисляемой с помощью секретного ключа K, к вводу/выводу функции шифрования E_K блочного шифрования (преобразуемой в режиме XEX). Уравнение преобразования в режиме XEX выражается следующим образом. Данное уравнение преобразования может называться далее уравнением XEX-преобразования.

[0022] TE_K((N, i), M[i])=E_K(M[i] xor mask_K(N, i) xor mask_K(N, i)

[0023] E_K используется для вычисления маски, и в системе OCB доступны эффективные последовательные обработки. То есть вычисления от mask_K(N, i) к mask_K(N, i+1) могут проводиться эффективно.

[0024] Фиг.19 представляет собой пояснительную диаграмму, схематически иллюстрирующую обработку шифрования в системе OCB. Блоки в пунктирных линиях на фиг.19 отвечают TE_K((N, i), *). Ход выполнения обработки вычисления последовательности маски на фиг.19 опущен.

[0025] Как показано на фиг.19, E_K вызывается один раз для вычисления L, для нахождения последовательности маски и тега аутентификации T в системе OCB соответственно, но в целом возможна и однопроходная обработка. Кроме того, обработка в каждом блоке может выполняться параллельно, за исключением вычисления последовательности маски. Более конкретно количество вызовов блочного шифрования для m-блочного открытого текста составляет почти m и почти половину от того числа, которое имеется в других двухпроходных системах аутентифицированного шифрования, таких как системы CCM и GCM (Galois/Counter mode).

Список литературы

Патентная литература

[0026] Патентный документ 1: U. S. Patent No. 8321675 Specification

Непатентная литература

[0027] Непатентный документ 1: Morris Dworkin, “Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality”, [online] May 2005, NIST Special Publication 800-38C, Internet <URL: http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf>

Непатентный документ 2: Moses Liskov, Ronald L. Rivest, David Wagner, “Tweakable Block Ciphers.”, 2002, Advances in Cryptology-CRYPTO 2002, Lecture Notes in Computer Science 2442 Springer 2002, p. 31-46.

Непатентный документ 3: P. Rogaway, “Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC.”, 2004, Advances in Cryptology-ASIACRYPT’04, LNCS 3329, p. 16-31.

Сущность изобретения

Техническая задача

[0028] Фиг.20 представляет собой пояснительную диаграмму, схематически иллюстрирующую обработку расшифрования в системе OCB. В режиме CCM или GCM обработка расшифрования, как аутентифицированное шифрование, выполняется только с помощью функции шифрования E_K блочного шифрования, в то время как в системе OCB, как показано на фиг.20, помимо функции шифрования E_K блочного шифрования для обработки расшифрования настраиваемого блочного шифрования требуется еще и функция расшифрования D_K блочного шифрования.

[0029] Когда обе функции шифрования и расшифрования блочного шифрования как части необходимы для шифрования и расшифрования аутентифицированного шифрования, нагрузки на сборку ввиду размера памяти или канала возрастают. Типовое блочное шифрование AES, как правило, медленнее в обработке расшифрования, чем шифрования, и этот факт обуславливает разницу в выполнении между обработкой шифрования и обработкой расшифрования в системе OCB, использующей AES или т. п.

[0030] Система OCB и аналогичные ей однопроходные системы аутентифицированного шифрования не могут решить вышеуказанную проблему.

[0031] В связи с этим задачей настоящего изобретения является создание устройства аутентифицированного шифрования для достижения однопроходного и односкоростного аутентифицированного шифрования, способного выполнять параллельные обработки и полностью выполнять обработки шифрования и расшифрования путем использования только одной функции шифрования, а также создание устройства шифрования, устройства расшифрования, способа аутентифицированного шифрования и программы для аутентифицированного шифрования.

Решение задачи

[0032] Устройство аутентифицированного шифрования в соответствии с настоящим изобретением характеризуется включением средства аутентифицированного шифрования для применения двухраундовой структуры Фейстеля, использующей функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входным открытому или зашифрованному текстам для генерации посредством этого зашифрованного текста или расшифрованного открытого текста.

[0033] Устройство шифрования в соответствии с настоящим изобретением характеризуется включением средства шифрования для применения двухраундовой структуры Фейстеля, использующей функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входному открытому тексту для генерации посредством этого зашифрованного текста.

[0034] Устройство расшифрования в соответствии с настоящим изобретением характеризуется включением средства расшифрования для применения двухраундовой структуры Фейстеля, использующей функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входному зашифрованному тексту для генерации посредством этого расшифрованного открытого текста.

[0035] Способ аутентифицированного шифрования в соответствии с настоящим изобретением характеризуется тем, что устройство обработки информации применяет двухраундовую структуру Фейстеля, использующую функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входным открытому или зашифрованному текстам для генерации посредством этого зашифрованного текста или расшифрованного открытого текста.

[0036] Программа для аутентифицированного шифрования в соответствии с настоящим изобретением характеризуется предписыванием компьютеру выполнять обработку применения двухраундовой структуры Фейстеля, использующей функцию шифрования, которой присвоена вспомогательная переменная, для раундовой функции на каждые два блока, к входным открытому или зашифрованному текстам для генерации посредством этого зашифрованного текста или расшифрованного открытого текста.

Полезные эффекты изобретения

[0037] В соответствии с настоящим изобретением можно достичь однопроходное и односкоростное аутентифицированное шифрование, способное выполнять параллельные обработки и полностью выполнять обработки шифрования и расшифрования путем использования только одной функции шифрования.

Краткое описание чертежей

[0038] [Фиг.1] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования в соответствии с настоящим изобретением.

[Фиг.2] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования в соответствии с настоящим изобретением.

[Фиг.3] Данный чертеж изображает структурную схему, иллюстрирующую типовое устройство, обеспеченное в системе аутентифицированного шифрования.

[Фиг.4] Данный чертеж изображает структурную схему, иллюстрирующую типовую функциональную структуру системы аутентифицированного шифрования.

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

[Фиг.6] Данный чертеж изображает (а) пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования с псевдослучайной функцией с использованием блочного шифрования в режиме XEX, и (б) пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования с псевдослучайной функцией с использованием блочного шифрования в режиме XEX.

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

[Фиг.8] Данный чертеж изображает блок-схему, иллюстрирующую типовую операцию шифрования системы аутентифицированного шифрования в соответствии с первым типовым вариантом осуществления.

[Фиг.9] Данный чертеж изображает блок-схему, иллюстрирующую типовую операцию расшифрования системы аутентифицированного шифрования в соответствии с первым типовым вариантом осуществления.

[Фиг.10] Данный чертеж изображает структурную схему, иллюстрирующую другую типовую структуру системы аутентифицированного шифрования.

[Фиг.11] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования в соответствии со вторым типовым вариантом осуществления.

[Фиг.12] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования в соответствии со вторым типовым вариантом осуществления.

[Фиг.13] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования в соответствии с третьим типовым вариантом осуществления.

[Фиг.14] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования в соответствии с третьим типовым вариантом осуществления.

[Фиг.15] Данный чертеж изображает структурную схему, иллюстрирующую типовую структуру устройства шифрования 100 для параллельных обработок.

[Фиг.16] Данный чертеж изображает структурную схему, иллюстрирующую типовую структуру устройства расшифрования 200 для параллельных обработок.

[Фиг.17] Данный чертеж изображает структурную схему, иллюстрирующую минимальную типовую структуру устройства аутентифицированного шифрования в соответствии с настоящим изобретением.

[Фиг.18] Данный чертеж изображает структурную схему, иллюстрирующую другую типовую структуру устройства аутентифицированного шифрования в соответствии с настоящим изобретением.

[Фиг.19] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования в системе OCB.

[Фиг.20] Данный чертеж изображает пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования в системе OCB.

Описание вариантов осуществления

[0039] Сначала настоящее изобретение будет описано в целом. Настоящее изобретение относится к системе шифрования, использующей общий секретный ключ, которая основывается на системе блочного шифрования для проведения шифрования для каждого заданного размера. Настоящее изобретение применяет двухраундовую структуру Фейстеля на каждые два блока. Для раундовой функции двухраундовой структуры Фейстеля используется функция шифрования, которой присвоена вспомогательная переменная Tw, называемая Tweak (настраиваемый параметр). Структура Фейстеля, таким образом, используется для аутентифицированного шифрования в единицах двух блоков, решая тем самым вышеуказанную проблему.

[0040] Далее система аутентифицированного шифрования в соответствии с настоящим изобретением будет описана более подробно. Настоящее изобретение использует следующие последовательности переменных, предполагая вспомогательную переменную Tw вводимой в функцию шифрования. Последовательность переменных, используемая в качестве вспомогательной переменной Tw, может назваться далее "вспомогательной последовательностью". Вспомогательная последовательность устроена так, что во все вызываемые функции шифрования вводятся различные значения, тогда как шифрование проводится с помощью одного ключа. Далее будет описан случай, в котором вспомогательная последовательность в комбинации с начальным вектором N с отличительным значением для шифрования некоторого открытого текста, идентификатором i для идентификации фрагмента в единицах двух блоков и j для идентификации блока в фрагменте от другой обработки или комбинация (N, i, j) используется в качестве вспомогательной переменной Tw, но вспомогательная последовательность этим не ограничивается. Вспомогательная последовательность выполнена с возможностью генерировать одно и то же значение для некоторого открытого текста как при шифровании, так и расшифровании. Например, значение для генерации вспомогательной последовательности определяется заранее. Приведенный выше пример удовлетворяет вышеуказанному условию, так как значение вспомогательной последовательности может быть однозначно определено на основе начального вектора и длины открытого или зашифрованного текста.

[0041] Например, когда количество блоков в открытом или зашифрованном тексте, подлежащем обработке, равняется 2m с предположением, что каждый блок имеет n битов, можно считать, что (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 2) используются в качестве вспомогательных последовательностей, зависящих от индекса каждого блока, а (N, m, 3) используется в качестве вспомогательной последовательности для генерации тега аутентификации.

[0042] С вспомогательными последовательностями, определенными таким образом, открытый текст M, подлежащий шифрованию, обрабатывается в обработке шифрования в двухблочных фрагментах. i-й фрагмент зашифрованного текста (C[2i], C[2i-1]) генерируется для i-го фрагмента открытого текста (M[2i-1], M[2i], где (i=1, •••, m)) путем использования вспомогательных последовательностей (N, i, 1), (N, i, 2) и псевдослучайной функции F_K(*, *) с ключом в качестве псевдослучайной функции с двумя входными переменными. "Псевдослучайная функция" - это название для функции шифрования, отражающее ее свойства. Псевдослучайной функцией может быть функция шифрования блочного шифрования или, например, снабженная ключом хэш-функция.

[0043] Фиг.1 представляет собой пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки шифрования в соответствии с настоящим изобретением. Блоки в пунктирных линиях на фиг.1 находятся в двухраундовой структуре Фейстеля и отвечают блокам обработки в обработке шифрования в единицах двух блоков. Например, вместе с вспомогательной последовательностью в качестве первой входной переменной i-й фрагмент зашифрованного текста (C[2i], C[2i-1]) получается в каждом блоке обработки путем использования F_K((N, i, 1), *) с вспомогательной последовательностью (N, i, 1) в качестве первой входной переменной и F_K((N, i, 2), *) с вспомогательной последовательностью (N, i, 2) в качестве первой входной переменной следующим образом. XOR обозначает побитовое исключающее ИЛИ.

[0044] C[2i-1] = F_K((N, i,1), M[2i-1]) xor M[2i],

C[2i]=F_K((N, i, 2), C[2i-1]) xor M[2i-1]

••• Уравнение (1)

[0045] Уравнение (1) показывает, что XOR результата, полученного путем работы псевдослучайной функции F_K на нечетном блоке M[2i-1] в i-м фрагменте открытого текста с использованием вспомогательной последовательности (N, i, 1), отвечающей нечетному блоку в i-м фрагменте открытого текста, и четного блока M[2i] в i-м фрагменте открытого текста представляется как нечетный блок зашифрованного текста C[2i-1] в i-м фрагменте зашифрованного текста, а XOR результата, полученного путем работы псевдослучайной функции F_K на таким образом полученном блоке зашифрованного текста C[2i-1] с использованием вспомогательной последовательности (N, i, 2), отвечающей четному блоку в i-м фрагменте открытого текста, и нечетного блока M[2i-1] в i-м фрагменте открытого текста представляется как четный блок зашифрованного текста C[2i] в i-м фрагменте зашифрованного текста. Данная обработка выполняется на всех фрагментах.

[0046] В дополнение к вышеописанной обработке тег аутентификации T генерируется для контрольной суммы открытого текста SUM=M[2] xor M[4] xor ••• xor M[2m] с взятием XOR для всех четных блоков M[2], M[4], •••, M[2m] в открытом тексте с использованием вспомогательной последовательности (N, m, 3) для генерации тега аутентификации открытого текста и псевдослучайной функции F_K с ключом K и двумя входными переменными. Блок в штрихпунктирной линии на фиг.1 отвечает блоку обработки для обработки генерации тега аутентификации. Тег аутентификации T получается, например, путем использования F_K((N, m, 3), *) с вспомогательной последовательностью (N, m, 3) в качестве первой входной переменной следующим образом. XOR в вычислении SUM может быть сложением в любой группе, например, арифметическим сложением.

[0047] T=F_K((N, m, 3), SUM) ••• Уравнение (2)

[0048] Обработки для четных и нечетных блоков могут быть взаимозаменены. В этом случае контрольная сумма открытого текста может быть сформирована из каждого нечетного блока. Кроме того, разбиение на фрагменты в единицах двух блоков этим не ограничивается. Когда потребность в последовательной обработке относительно невысокая, к примеру при отсутствии онлайн вычисления, один фрагмент может быть создан, скажем, с первым и третьим блоками. Вспомогательная последовательность может быть устроена так, что во все псевдослучайные функции на чертеже вводятся различные значения, тогда как шифрование проводится с помощью одного ключа. Обведенный кружком символ + на чертеже обозначает XOR.

[0049] Зашифрованный текст C, начальный вектор N и тег аутентификации T передаются стороне расшифрования.

[0050] Когда зашифрованный текст C, подлежащий расшифрованию, начальный вектор N и тег аутентификации T вводятся на стороне расшифрования, сначала определяются вспомогательные последовательности в соответствии с тем же правилом. Например, полагая зашифрованный текст в виде C=(C[1], C[2], •••, C[2m]) с каждым блоком в n бит, в качестве вспомогательных последовательностей, зависящих от индекса каждого блока в зашифрованном тексте C, на основе информации о начальном векторе N и длине зашифрованного текста можно определить (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m, 1), (N, m, 2), а (N, m, 3) может быть определена для использования в качестве вспомогательной последовательности для генерации тега аутентификации.

[0051] Также в обработке расшифрования зашифрованный текст C, подлежащий расшифрованию, разбивается на фрагменты в единицах двух блоков, и обработка расшифрования, использующая двухраундовую структуру Фейстеля, состоящую из псевдослучайной функции F_K(*, *) с той же вспомогательной последовательностью, что и введенной при шифровании, выполняется на i-м фрагменте зашифрованного текста (C[2i-1], C[2i], где (i=1, •••, m)). Посредством чего может быть получен фрагмент расшифрованного открытого текста (M’[2i], M’[2i-1]).

[0052] Кроме того, когда та же обработка, что и обработка, выполняемая при шифровании, выполняется на основе контрольной суммы открытого текста с XOR для всех получившихся четных блоков M’[2], M’[4], •••, M’[2m] в открытом тексте, получается проверяющий расшифрование тег аутентификации T.

[0053] Фиг.2 представляет собой пояснительную диаграмму, схематически иллюстрирующую типовое выполнение обработки всей обработки расшифрования в соответствии с настоящим изобретением. Блоки в пунктирных линиях на фиг.2 находятся в двухраундовой структуре Фейстеля и отвечают блокам обработки в обработке расшифрования в единицах двух блоков. В каждом блоке обработки блоки открытого текста M’[2i] и M’[2i-1], расшифровываемые следующим образом, получаются путем использования F_K((N, i, 1), *) с вспомогательной последовательностью (N, i, 1) в качестве первой входной переменной и F_K((N, i, 2), *) с вспомогательной последовательностью (N, i, 2) в качестве первой входной переменной.

[0054] M’[2i-1]=F_K((N, i, 2), C[2i-1]) xor C[2i],

M’[2i]=F_K((N, i, 1), M’[2i-1]) xor C[2i-1]

••• Уравнение (3)

[0055] Эти обработки выполняются на всех фрагментах зашифрованного текста. Проверяющий расшифрование тег аутентификации T’ генерируется для контрольной суммы открытого текста SUM’=M[2] xor M’[4] xor ••• xor M’[2m] для проверки расшифрования с взятием XOR для всех четных блоков M’[2], M’[4], •••, M’[2m] в расшифрованном открытом тексте с использованием вспомогательной последовательности (N, m, 3) для генерации тега аутентификации расшифрованного открытого текста и псевдослучайной функции F_K с ключом K и двумя входными переменными. Блок в штрихпунктирной линии на фиг.2 отвечает блоку обработки для обработки генерации тега аутентификации. Проверяющий расшифрование тег аутентификации T’ получается путем использования F_K((N, m, 3), *) с вспомогательной последовательностью (N, m, 3) в качестве первой входной переменной следующим образом.

[0056] T’=F_K((N, m, 3), SUM’) ••• Уравнение (4)

[0057] Когда проверяющий расшифрование тег аутентификации T’ получен, производится проверка, совпадает ли входной тег аутентификации T с проверяющим расшифрование тегом аутентификации T’, и в случае совпадения выводится расшифрованный открытый текст M’=(M’[1], M’[2], •••, M’[2m]). Когда же они не совпадают, выводится сообщение об ошибке, указывающее на ошибку расшифрования.

[0058] Зашифрованный текст в настоящей системе расшифрования может быть расшифрован правильно, поскольку двухраундовая структура Фейстеля устанавливает замену для любой раундовой функции, так что, когда для функции шифрования определяются ключ и вспомогательная переменная, фрагменты открытого и зашифрованного текстов соответствуют друг другу взаимно однозначным образом, вспомогательная последовательность выполнена с возможностью однозначного определения на основе начального вектора и длины открытого или зашифрованного текста, и одна и та же вспомогательная последовательность используется как для шифрования, так и для расшифрования.

[0059] Кроме того, в обработках на отдельных раундах в двухраундовой структуре Фейстеля обратной обработки (обработки нахождения ввода по выводу функции) самой раундовой функции не требуется, и в обратной обработке раундовой функции вообще нет необходимости. В настоящей системе для раундовой функции используется функция шифрования, поэтому для преобразования открытого текста в зашифрованный текст обратной обработки функции шифрования не требуется. Кроме того, в обработке генерации тега аутентификации как при шифровании, так и при расшифровании выполняется одна и та же обработка, поэтому и в этой обработке нет необходимости в обратной обработки функции шифрования.

[0060] Безопасность настоящей системы приводит к безопасности функции шифрования. Это обусловлено тем, что настоящая система выполнена с возможностью генерировать тег аутентификации на основе суммы четных блоков, к которым в двухраундовой структуре Фейстеля функция шифрования применяется дважды. При расшифровании измененного зашифрованного текста в любом из четных блоков с большой вероятностью возникает случайное число, которое злоумышленник, изменяющий данные (и, конечно, не знающий ключа), предсказать не может, и его XOR, таким образом, или контрольная сумма открытого текста также не может быть предсказана. Поэтому проверяющий расшифрование тег аутентификации T’, который получается путем ввода контрольной суммы открытого текста в функцию шифрования, также непредсказуем.

[0061] В соответствии с настоящей системой аутентифицированное шифрование достигается только за счет функции шифрования, и, следовательно, может быть задействована снабженная ключом хэш-функция, такая как HMAC. Кроме того, в дополнение к блочному шифрованию или хэш-шифрованию могут быть основаны различные способы шифрования.

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

[0063] Система аутентифицированного шифрования, применяющая систему аутентифицированного шифрования для открытого текста, подлежащего разбиению на четное число блоков, будет описана далее в соответствии с первым типовым вариантом осуществления. Более развернуто в соответствии со вторым и последующими типовыми вариантами осуществления будет описана система аутентифицированного шифрования, применяющая систему аутентифицированного шифрования, способную справляться со случаем, в котором размер последнего блока меньше заданного размера блока или в котором возникает нечетное количество блоков.

[0064] Первый типовой вариант осуществления

Типовая структура системы аутентифицированного шифрования в соответствии с первым типовым вариантом осуществления настоящего изобретения будет описана со ссылкой на фиг.3, фиг.4 и фиг.5. Фиг.3 представляет собой структурную схему, иллюстрирующую типовое устройство, обеспеченное в системе аутентифицированного шифрования в соответствии с данным типовым вариантом осуществления. Как показано на фиг.3, система в соответствии с данным типовым вариантом осуществления включает в себя устройство обработки информации 50. Устройство обработки информации 50 содержит блок вычислений 51, блок хранения данных 52 и блок ввода/вывода 53. Устройство обработки информации 50 является, например, персональным компьютером, работающим в соответствии с программой, или т. п. В этом случае блок вычислений 51, блок хранения данных 52 и блок ввода/вывода 53 реализуются центральным процессором, памятью и различными устройствами ввода/вывода (такими как клавиатура, мышь и блок сетевого интерфейса) соответственно. Фиг.3 иллюстрирует, что блок вычислений 51, блок хранения данных 52 и блок ввода/вывода 53 содержатся в одном устройстве, но они могут быть распределены и на множестве устройств.

[0065] Фиг.4 представляет собой структурную схему, иллюстрирующую типовую функциональную структуру системы аутентифицированного шифрования в соответствии с данным типовым вариантом осуществления. Как показано на фиг.4, система аутентифицированного шифрования может включать в себя устройство шифрования 100, содержащее средство шифрования 10, и устройство расшифрования 200, содержащее средство расшифрования 20. Устройство шифрования 100 и устройство расшифрования 200 реализуются, например, с помощью устройства обработки информации 50, проиллюстрированного на фиг.3.

[0066] Сначала будет описано средство шифрования 10, обеспеченное в устройстве шифрования 100. Средство шифрования 10 имеет средство ввода 101, средство генерации вспомогательной переменной 102, средство двухраундового шифрования Фейстеля 103, средство вычисления тега 104 и средство вывода 105.

[0067] Далее длина одного блока будет предполагаться равной n битам, если не оговорено иное.

[0068] Средство ввода 101 вводит открытый текст M, подлежащий шифрованию, и начальный вектор N. Средство ввода 101 реализуется с помощью устройства ввода символов, такого как клавиатура. Далее будет предполагается, что вводится открытый текст M=(M[1], •••, M[2m]), имеющий четное число блоков. Начальный вектор N для простоты полагается содержащим n бит, но если он короче, выполняется надлежащее дополнение, или для сведения к n битам дополнительно применяется псевдослучайная функция с n-битным выводом и вводом переменной длины (которая может быть реализована с помощью CMAC или HMAC, например). Дополнение здесь присоединяет фиксированную последовательность к хвосту двоичной последовательности для достижения посредством этого заданной длины. Например, применяется дополнение нулями или дополнение вида 10* (1 с последующими нулями 00•••0). Последнее является эффективным в предотвращении последовательностей с различными длинами от наличия того же значения после дополнения. В данном случае может быть использовано дополнение нулями.

[0069] Средство генерации вспомогательной переменной 102 на основе информации о начальном векторе N и длине открытого текста M генерирует вспомогательную переменную, как правило называемую Tweak или настраиваемым параметром, задаваемую для псевдослучайной функции в обработке расшифрования. В соответствии с данным типовым вариантом осуществления последовательность переменных (вспомогательная последовательность), как описано далее, генерируется в качестве вспомогательных переменных. Некоторая вспомогательная последовательность выражается вектором с тремя элементами в виде (N, i, j) с положительными целыми i и j. Когда открытый текст состоит из 2m блоков, вспомогательными последовательностями являются (N, 1, 1), (N, 1, 2), (N, 2, 1), (N, 2, 2), •••, (N, m-1, 1), (N, m-1, 2), (N, m, 1), (N, m, 2), (N, m, 3). Все переменные, за исключением последней, используются для шифрования, и то