ОБЛАСТЬ ТЕХНИКИ
Данное изобретение относится к области систем обработки данных, в частности к улучшенной защите в системах обработки данных.
УРОВЕНЬ ТЕХНИКИ
В множестве разнообразных областей, таких, например, как электронная коммерция, связь и вещание, защита является наиболее важным фактором. Меры по защите способствуют идентифицируемости, равнодоступности, точности, конфиденциальности, удобству использования и другим критериям, которые желательны для систем обработки данных и информационных систем, используемых в этих областях. Криптографические методы, которые обеспечивают такую защиту, обычно распределяются по критериям согласно двум целям: шифрованию и аутентификации. Шифрование является методом представления данных в форме, не доступной для чтения неавторизованными сторонами. Аутентификации является методом подтверждения целостности данных. Подтверждение целостности данных включает проверку тождества автора данных и/или проверку, были ли данные изменены.
Системы шифрования часто упоминаются как криптосистемы и бывают симметричными или асимметричными. Симметричная система шифрования использует секретный ключ для шифрования информации и тот же самый секретный ключ для расшифровки зашифрованной информации. Асимметричная система шифрования, такая как криптосистема с открытым ключом, использует первый ключ для шифрования информации и использует другой ключ для расшифровки зашифрованной информации.
Во многих симметричных криптосистемах один ключ используется для функции шифрования, и отдельный ключ используется для функции аутентификации. Следовательно, в системах обработки данных, использующих симметричную криптосистему, шифрование и аутентификация выполняются как две отдельных процедуры. Так как аутентификация требует приблизительно такой же большой мощности обработки, как и шифрование, общий объем обработки эквивалентен объему обработки, требуемому для того, чтобы зашифровать данные дважды. В системах обработки данных, которые работают в ограниченной по мощности или ограниченной по аппаратным средствам среде, такой как, например, мобильный телефон, личный цифровой помощник или другое переносное устройство связи, было бы желательно иметь криптосистему, которая может выполнять шифрование и аутентификацию как одну процедуру, чтобы уменьшить вычислительную нагрузку на устройстве.
В статье "Encryption Modes with Almost Free Message Integrity," Charanjit Jutla, Advances in Cryptology, EUROCRYPT 2001, Lecture notes in Computer Science, vol. 2045, Springer-Verlag, 2001, представлены криптосистемы, которые могут шифровать сообщения и аутентифицировать зашифрованные сообщения способом, который требует немногим большей обработки, чем одно шифрование. Другими словами, шифрование и аутентификация могут быть выполнены с использованием одной процедуры. Следовательно, количество ресурсов для обработки, требуемой для обеспечения защиты, уменьшено.
Криптосистемы Jutla разработаны для шифрования всех данных, которые должны быть переданы. Однако требование, чтобы все данные сообщения были зашифрованы, является нежелательным в некоторых приложениях. Например, в протоколах связи типа IPSec шифрование всех данных является неэффективным. Часть заголовка данных нужно послать в незашифрованном виде для целей адресации. Основы IPSec определены в RFC (Запрос на комментарий, серия документов IETF) 1825 «Security Architecture for the Internet Protocol», RFC 1826 «IP Authentication Header», и RFC 1827 «IP Encapsulating Security Payload (ESP)», все были представлены R.Atkinson в августе 1995.
Следовательно, существует потребность в надежной и эффективной системе для шифрования и аутентификации данных, в которых не требуется шифрование всех битов данных сообщения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Заявлены способы и устройство, направленные на решение задачи, указанной выше. Более определенно, заявлены способы и устройство для обеспечения возможности передачи некоторой части сообщения данных как открытого текста, передачи некоторой части сообщения данных как зашифрованного текста и использования единственного тега аутентификации для проверки как части открытого текста, так и части зашифрованного текста сообщения данных.
В одном аспекте представлен способ для шифрования и аутентификации данных как одной процедуры, причем способ содержит: упорядочивание данных в множество блоков открытого текста, каждый размером, соответствующим размеру блока шифра; определение, по меньшей мере, одной позиции открытого текста, для которого, по меньшей мере, один блок зашифрованного текста будет точно таким же, что и соответствующий блок открытого текста; определение множества шумовых блоков с использованием значения одноразового номера и первого ключа; определение множества промежуточных блоков зашифрованного текста, в котором первый промежуточный блок зашифрованного текста соответствует шифрованию одноразового номера, и остальные промежуточные зашифрованные тексты определены следующим образом: для каждого множества блоков открытого текста, определенных позицией открытого текста, блок открытого текста объединяется с соответствующим шумовым блоком; для каждого множества блоков открытого текста, не определенных позицией открытого текста, формируется промежуточный блок открытого текста с использованием блока открытого текста и предыдущего промежуточного блока зашифрованного текста и затем промежуточный блок открытого текста зашифровывается с использованием второго ключа; определяется множество блоков зашифрованного текста, в которых множество блоков зашифрованного текста определено путем установки первого блока зашифрованного текста равным первому промежуточному блоку зашифрованного текста; установки каждого из блоков зашифрованного текста, определенных позицией открытого текста, равным соответствующему блоку открытого текста; определения каждого из оставшихся блоков зашифрованного текста путем объединения соответствующего блока промежуточного зашифрованного текста с соответствующим шумовым блоком; определение множества блоков аутентификации, в котором множество блоков аутентификации определено следующим образом: если блок аутентификации связан с блоком открытого текста, который не определен позицией открытого текста, то блок аутентификации устанавливается равным блоку открытого текста; если блок аутентификации связан с блоком открытого текста, который определен позицией открытого текста, то блок аутентификации определяется путем расшифровки связанного промежуточного блока зашифрованного текста и объединения расшифрованного связанного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста; вычисляется тег аутентификации путем объединения всех из множества блоков аутентификации с шумовым блоком и затем шифрования объединенного результата; тег аутентификации добавляется к множеству блоков зашифрованного текста.
В другом аспекте представлен способ для расшифровки и проверки множества переданных блоков, сопровождаемых тегом аутентификации, содержащий: определение множества шумовых блоков с использованием значения одноразового номера и первого ключа; определение множества промежуточных блоков зашифрованного текста путем объединения каждого из множества переданных блоков с соответствующим шумовым блоком; определение множества блоков аутентификации, в котором каждый из множества блоков аутентификации сформирован путем расшифровки соответствующего промежуточного блока зашифрованного текста и, затем, объединения расшифрованного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста; установку каждого из множества блоков аутентификации, которые не связаны ни с какой предопределенной позицией открытого текста как блока открытого текста; установку каждого из множества переданных блоков, которые связаны с любой предопределенной позицией открытого текста как блока открытого текста; проверку тега аутентификации путем определения, равен ли последний блок аутентификации комбинации всех других блоков аутентификации.
В другом аспекте представлен способ защищенной передачи данных, в котором первую часть передаваемых данных посылают как открытый текст, вторую часть передаваемых данных посылают как зашифрованный текст, и вся передача данных аутентифицируется, причем способ содержит генерацию набора позиций открытого текста; шифрование первой части передаваемых данных и второй части передаваемых данных в зашифрованный текст, при этом первая часть передачи данных определена набором позиций открытого текста и вторая часть передаваемых данных не связана ни с одной из набора позиций открытого текста; определение множества промежуточных блоков зашифрованного текста через итерационную процедуру; генерацию множества блоков аутентификации, в котором каждый из первой части множества блоков аутентификации установлен равным соответствующему блоку первой части передаваемых данных, и каждый из второй части множества блоков аутентификации получен путем объединения соответствующего промежуточного блока зашифрованного текста и предыдущего промежуточного блока зашифрованного текста; генерацию тега аутентификации путем объединения каждого из множества блоков аутентификации и шумового блока и шифрования результата объединения; передачу открытого текста, зашифрованного текста и тега аутентификации, при этом открытый текст является первой частью передаваемых данных, определенных набором позиций открытого текста.
В другом аспекте представлено устройство для защищенной передачи данных, причем первая часть передаваемых данных передается как открытый текст, вторая часть передаваемых данных передается как зашифрованный текст, и все передаваемые данные аутентифицируются, при этом устройство содержит: средство для генерации набора позиций открытого текста; средство для шифрования первой части передаваемых данных и второй части передаваемых данных в зашифрованный текст, причем первая часть передаваемых данных определена набором позиций открытого текста и вторая часть передаваемых данных не связана ни с одной из набора позиций открытого текста; средство для определения множества промежуточных блоков зашифрованного текста через итерационную процедуру.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1A, 1B, и 1C - блок-схемы базовой криптосистемы, симметричной системы шифрования и асимметричной системы шифрования.
Фиг.2A и 2B - блок-схемы симметричной системы аутентификации и асимметричной аутентификации.
Фиг.3 - блок-схема режима сцепления зашифрованных блоков с обеспечением целостности.
Фиг.4A - блок-схема режима CBC-A.
Фиг.4B - блок-схема аппаратных средств, сконфигурированных для выполнения режима CBC-A.
Фиг.5 - блок-схема расшифровки и проверки сообщения, которое было зашифровано и аутентифицировано в режиме CBC-A.
Фиг.6A, 6В, 6С и 6D - различные аппаратные конфигурации для проверки тега аутентификации.
ПОДРОБНОЕ ОПИСАНИЕ
Шифрование приводит данные в состояние, невозможное для прочтения неавторизованными сторонами. Исходные данные сообщения упоминаются как сообщение с открытым текстом или открытый текст. Зашифрованное сообщение называют зашифрованным текстом, при этом шифрование включает любые средства для преобразования открытого текста в зашифрованный текст, например блочные шифры, хеш-функции, или любая другая криптографическая функция. Расшифровка включает любые средства для преобразования зашифрованного текста в открытый текст, то есть восстановления исходного сообщения. Фиг.1A иллюстрирует базовую криптосистему 10, предназначенную для шифрования. Сообщение 11 открытого текста обрабатывает схема 12 шифрования для формирования зашифрованного текста 13. Зашифрованный текст 13 после этого передается через канал связи (не показан) и подвергается обработке в схеме 14 расшифровки в другом месте (не показано) для восстановления открытого текста 15. Открытый текст и зашифрованный текст могут относиться к любым данным, включая аудио- и видеоданные, представленные в цифровой форме.
Криптоанализ является методом преодоления защиты криптосистем. Объект, выполняющий криптоанализ, известен в данной области техники как противник или нападающий. Криптоанализ схемы шифрования направлен на расшифровку неавторизованного сообщения. Криптоанализ схемы аутентификации направлен на структуру сообщения, которое может быть проверено как посланное кем-то еще.
Криптосистема основана на секретах. Группа объектов совместно использует секрет, если объект вне этой группы не может получить секрет без расходования весьма большого количества ресурсов. По определению такой секрет служит ассоциацией защиты внутри группы объектов.
Как правило, секрет включает ключ или набор ключей, которые измеряются в битах. Чем длиннее ключ, тем более криптозащищенным будет ключ. Симметричная криптосистема использует один и тот же секретный ключ как для шифрования сообщения, так и для расшифровки сообщения. Симметричная система 20 шифрования проиллюстрирована на фиг.1B, в которой и шифрование и расшифровка используют тот же самый секретный ключ. Открытый текст 21 обрабатывается схемой 22 шифрования. Секретный ключ 23 используется в схеме 22 шифрования для формирования зашифрованного текста 24. Зашифрованный текст 24 передается по каналу связи (не показан) в другое место, в котором схема 25 расшифровки использует тот же самый секретный ключ 23 для формирования открытого текста 26.
Напротив, асимметричная криптосистема использует первый ключ для шифрования сообщения и использует другой ключ для его расшифровки. Фиг.1C иллюстрирует асимметричную систему шифрования, известную как криптосистему 30 с открытым ключом, в которой открытый ключ предназначен для шифрования и секретный ключ предназначен для расшифровки. Открытый ключ публикуется, чтобы любая сторона могла использовать открытый ключ для шифрования любого сообщения. Однако только секретный, непубликуемый ключ может использоваться для расшифровки сообщения, зашифрованного открытым ключом. Открытый текст 31 вводится в схему 32 шифрования, которая использует открытый ключ 33, который связан с намеченной стороной и получен из публикации. Результирующий зашифрованный текст 34 передается по каналу связи (не показан) к намеченной стороне. Намеченная сторона использует секретный ключ 36 в схеме 35 расшифровки для преобразования зашифрованного текста 34 в открытый текст 37. Симметричное шифрование является, как правило, намного более быстродействующим чем асимметричное шифрование. Однако передача секретного ключа от отправителя получателю проблематична из-за возможности перехвата противником. Одно из решений состоит в том, чтобы использовать третью доверенную сторону для хранения ключей, которая будет совместно использовать ключ только с авторизованной стороной. Варианты воплощения, описанные здесь, не рассматривают эту проблему, и предполагается, что отправитель и получатель совместно используют секретный ключ.
Целостность зашифрованного текста, сгенерированного вышеупомянутыми криптосистемами, обычно обеспечивается добавлением некоторых данных аутентификации к передаваемому зашифрованному тексту. Данные аутентификации обычно вычисляются как функция содержания сообщения и секретного ключа целостности.
В симметричной системе аутентификации данные аутентификации известны как код идентификации сообщения (MAC). MAC вычисляется как функция содержания сообщения и секретного ключа целостности, при этом отправитель и намеченный адресат совместно используют секретный ключ целостности. Отправитель передает сообщение и добавляет в конец MAC. Сообщение может быть открытым текстом или зашифрованным текстом. Получатель вновь вычисляет MAC из сообщения и подтверждает целостность сообщения, только если вновь вычисленный MAC согласуется с переданным MAC. Теоретически только отправитель сообщения может сформировать действительную сигнатуру для этого сообщения, таким образом аутентифицируя сообщение для получателя.
Симметричная система 40 аутентификации проиллюстрирована на фиг.2A, в которой при подписании и проверке используется один и тот же секретный ключ. Сообщение 41 обрабатывается схемой 42 аутентификации, которая использует ключ 43 для формирования данных 44 аутентификации. Данные 44 аутентификации и сообщение 41 передаются затем через канал связи (не показан) к другой стороне (не показана). Сообщение 41 обрабатывается схемой 45 проверки с использованием того же самого ключа 43 для определения данных 46 аутентификации. Данные 46 аутентификации, которые сформированы получающей стороной, сравниваются с данными 44 аутентификации, которые получены по каналу связи.
В асимметричной системе аутентификации данные аутентификации известны как цифровая подпись. Цифровая подпись вычисляется как функция содержания сообщения и секретного ключа целостности отправителя. Отправитель передает цифровую подпись стороне получателя, которая после этого выполняет проверку цифровой подписи с использованием открытого ключа отправителя. Асимметричная система 50 аутентификации проиллюстрирована на фиг.2B, в которой при подписании используется секретный ключ, при проверке используется соответствующий открытый ключ.
В некоторых схемах MAC или цифровая подпись вычисляются из «дайджеста сообщения», который содержит уникальное математическое описание секретного сообщения. Дайджест сообщения по длине меньше, чем оригинальное сообщение, чтобы вычисление дайджеста сообщения выполнялось более легко. Зависимость MAC или цифровой подписи от секретного сообщения или от дайджеста сообщения гарантирует, что данные аутентификации не останутся постоянными, так как секретное сообщение или дайджест сообщения не являются постоянными. Если данные аутентификации все-таки остаются постоянными для множества сообщений, то противник может легко приспособить ложные данные аутентификации.
Дайджест сообщения часто вычисляется с использованием криптографической хеш-функции. Криптографическая хеш-функция вычисляет значение (содержащее установленное число бит) из любых входных данных, вне зависимости от длины входных данных. Одним свойством криптографической хеш-функции является то, что по данному выходному значению в вычислительном отношении трудно определить входное значение, которое привело к этому выходному значению. Примером криптографической хеш-функции является SHA-1, как описано в «Secure Hash Standard», FIPS PUB 180-1, опубликованным Federal Information Processing Standards Publications (FIPS PUBS) и выпущенным National Institute of Standards and Technology (NIST).
Блочный шифр является симметричной схемой шифрования, для которой входное значение для схемы всегда имеет фиксированную длину в битах. Длина известна как размер блока блочного шифра. Примером блочного шифра является Data Encryption Standard (DES), описанный в «Data Encryption Standard», FIPS PUB 46-1, опубликованный FIPS PUBS и выпущенный NIST. DES имеет размер блока 64 бита. Другим примером блочного шифра является Advanced Encryption Standard (AES), описанный в «Advanced Encryption Standard», FIPS PUB 197, опубликованный FIPS PUBS и выпущенный NIST. AES имеет размер блока 128 бит.
Длина ключа блочного шифра является длиной ключа в битах. Однако энтропия ключа является логарифмом (по основанию 2) числа возможных значений для ключа. Энтропия также записывается в терминах битов. Например, DES имеет ключ 64 бита, с 8 из этих битов, используемых как контрольные суммы для обнаружения ошибок в передаче ключа. Следовательно, энтропия ключа DES равна
(64-8)=56 бит.
Зная несколько пар входных значений и соответствующих выходных значений блочного шифра, противник может получить ключ блочного шифра путем проверки всех возможных значений ключей для определения того, какие входные значения приводят к правильным выходным значениям. Этот тип атаки известен как исчерпывающий поиск ключа. Вычислительная сложность такой атаки определяется числом операций шифрования, требуемых для атаки. Следовательно, атака для получения k-битного ключа потребует приблизительно 2k операций шифрования для извлечения ключа блочного шифра при исчерпывающем поиске ключа.
Блочные шифры полезны для создания других криптографических объектов. Способ применения блочного шифра называется режимом работы. Четыре режима работы для DES были стандартизированы и описаны в «DES Modes of Operation», FIPS PUB 81, опубликованном FIPS PUBS и выпущенном NIST. Этими четырьмя режимами являются Electronic Codebook (электронная кодовая книга) (ECB), Cipher Block Chaining (связывание блоков шифра) (CBC), Output Feedback (обратная связь по выходу) (OFB) и Cipher Feedback (шифрование с обратной связью) (CFB). Для иллюстративных целей, здесь описаны только режимы ECB и CBC для шифрования последовательности блоков открытого текста P1,..., Pm.
В режиме ECB блочный шифр используется для шифрования каждого блока открытого текста в блок зашифрованного текста согласно следующему отношению:
Ci=Ek(Pi),
где EK(Pi) обозначает шифрование блока Pi с использованием ключа K. Как используется в дальнейшем, DK(Pi) обозначает расшифровку блока Pi с использованием ключа K.
В режиме CBS над первым блоком открытого текста проводится операция «Исключающее ИЛИ» с секретным начальным значением (IV) для формирования результата, который станет зашифрованным. Математическое описание этого процесса записано в соответствии с отношением
Ci=EK(P1 ⊕ IV)
После этого над каждым блоком открытого текста проводится операция «Исключающее ИЛИ» с предыдущим зашифрованным текстом для шифрования следующим образом:
Ci=EK(Pi ⊕ Ci-1).
Эффективное шифрование и аутентификация могут быть проблематичными в симметричных криптосистемах. До недавнего времени единственное решение для удовлетворения этого требования состояло в использовании примитивного подхода: обеспечить шифрование и аутентификацию как две отдельных функции. Две функции требуют приблизительно равных объемов вычислений, так что использование обеих функций в два раза дороже, чем использование только одной или другой.
В статье «Encryption Modes with Almost Free Message Integrity», Jutla предлагает два способа, которые обеспечивают шифрование и аутентификацию, требующую только немного большего количества вычислений, чем одно шифрование или чем одна аутентификация. Эти способы имеют общую форму и используют блочный шифр в качестве криптографического ядра. В криптографической области такой способ также называют «режимом работы». Один из режимов работы Jutla, известных как Integrity Aware Parallelizable (режим параллелизации с обеспечением целостности) (IAPM), не обсуждается в этом документе. Другие из режимов, предложенных в работе Jatla, известные как Integrity Aware Cipher-Block Chaining (связывание блоков шифра с обеспечением целостности) (IACBC), показаны на фиг.3. IACBC использует два ключа: K0 и Ki. Предположим, что отправитель желает зашифровать и аутентифицировать сообщение, состоящее из (m-1) блоков сообщения от P1 до Pm-1. Отправитель устанавливает t равным следующему целому числу, большему чем логарифм (по основанию два) от (m+1). Отправитель выбирает случайное значение r, которое зашифровано для формирования блока Co зашифрованного текста. Значения от (r+1) до (r+t) зашифрованы для формирования значений от W0 до Wt-1, при этом шифрование использует ключ K0. Значения от W0 до Wt-1 тогда используются для получения парных независимых значений от S0 до Sm. Значения Si упомянуты здесь как шумовые блоки. Значения S0,...,Sm являются попарно независимыми значениями, если S0,...,Sm являются однородно распределенными n-битными случайными числами со свойством, что для каждой пары Si и Sj, где i≠j, и каждой пары n-битных констант С1 и С2, вероятность того, что Si=C1 и Sj=C2 есть 2-2n. Фактическое вычисление от S0 до Sm не является релевантным для понимания IACBC и здесь не описывается. Значения блоков зашифрованного текста от C1 до Сm-i получены итерационно для 1 ≤ j ≤ m-1 согласно отношениям
Mi=Pi ⊕ Ni-1,
Ni=EK1(Mi),
Ci=Ni ⊕ Si,
где ключ K1 используется для каждого блока зашифрованного текста, и начальное значение N0 установлено в C0. Значения Mi называются промежуточными блоками открытого текста, и значения Ni называются промежуточными блоками зашифрованного текста. Отправитель после этого вычисляет значение контрольной суммы Pm, которое определяется как
Pm=P1 ⊕ P2 ⊕... ⊕Pm-1
Тег MAC Cm вычисляется из Pm c помощью шифрования (Pm⊕ Ni-1) с ключом Ki и XOR зашифрованный результат с S0. Это действие представлено математическими отношениями
Cm=Ek1(Pm ⊕ Ni-1) ⊕ S0
Отправитель передает C0... Сm.
Предположим, что получатель получает C'0... С'm. Получатель начинает процесс расшифровки, расшифровав вначале C'0 для формирования r', в котором расшифровка использует ключ K1. Значения от (r'+1) до (r'+t) шифруются для формирования значений от W'0 до W't-1, причем шифрование использует ключ K0. Получатель после этого вычисляет значения от S'0 до S'm. Значения блоков зашифрованного текста от P1 до Pm-i получаются итерационно для
1 ≤ i ≤ m-1 согласно следующим отношениям:
N'i=Ci ⊕ S'i,
M'i=DK1(N'i),
Pi=N'i-1 ⊕ M'i,
где ключ K1 используется для каждого блока открытого текста, и начальное значение N'0 установлено равным C'0. Получатель тогда вычисляет значение P'm контрольной суммы как определено ниже
P'm=P'1 ⊕ P'2 ⊕... ⊕P'm-1
Значение X вычисляется шифрованием результата операции XOR Pm с Nm-1, с использованием ключа Ki, и затем выполнением операции XOR над зашифрованным результатом с S'0. Математически, процесс может быть описан следующим образом:
X=Ek1(P'm ⊕ Nm-1) ⊕ S'0
Если X и C'm равны, то получатель может быть уверен в целостности зашифрованного сообщения.
Gligor и Donescu в статье «Fast Encryption and Authentication: XCBC Encryption and XEBC Authentication Modes» предложили подобный режим, названый eXtended Ciphertext Block Chaining режим (расширенный режим связывания блоков шифрованного текста) (XCBC режим), который обеспечивает шифрование и аутентификацию с использованием сходного объема вычислений. Главное различие между XCBC и IACBC заключается в формулировке шумовых блоков от S0 до Sm, формулировка которых не существенна для этого документа.
Режимы IACBC и XCBC имеют некоторые нежелательные свойства. Первым нежелательным свойством является то, что эти режимы требуют, чтобы все данные посылались зашифрованными. В протоколах Интернет типа IPSec нежелательно передавать сообщения, в которых все данные зашифрованы. В частности, заголовки, содержащие адресную информацию, должны посылаться открытыми. Варианты воплощений, описанные здесь, предлагают вариант режимов IACBC И XCBC, который позволяет посылать блоки данных в виде открытого текста при добавлении только небольшого объема обработки. Этот вариант упомянут здесь как режим CBC-A.
Необходимо отметить, что аппаратные средства или программное обеспечение в системах передачи данных или связи могут конфигурироваться для выполнения различных вариантов воплощения режима CBC-A. Аппаратные средства могут включать в себя, не ограничиваясь указанным, элементы обработки, которые выполняют набор команд, сохраненных на машиночитаемом носителе информации, например памяти, для выполнения шифрования, аутентификации, расшифровки и процессов проверки, которые описаны здесь. Более того, различные комбинаторные шаги описаны с использованием поразрядного, логического оператора «исключающее ИЛИ». Другие реализации воплощений могут быть выполнены с использованием операций целочисленного сложения по модулю, в котором два входных значения обрабатываются как бинарные представления целых чисел, промежуточное значение формируется как бинарное представление в виде суммы целых чисел, и выходное значение формируется округлением промежуточного значения до размера блока шифра. Другие групповые операторы могут также заменяться на различные комбинаторные шаги, однако только для иллюстрации, ниже описаны только варианты воплощения, использующие операторы «исключающее ИЛИ».
Вариант воплощения режима CBC-A проиллюстрирован на фиг.4A. Режим работы CBC-A использует две ключа: K0 и K1. Предположим, что отправитель желает зашифровать и аутентифицировать сообщение, состоящее из (m-1) блоков сообщения от P1 до Pm. Отправитель и получатель договариваются о наборе блоков открытого текста для отсылки в незашифрованной форме. Пусть U обозначает набор индексов блоков открытого текста, которые должны посылаться в незашифрованной форме, причем элементы U упоминаются как позиции открытого текста. На этапе 400 отправитель выбирает r и следует режиму IACBC ИЛИ XCBC для вычисления шумовых блоков от S0 до Sm. На этапе 402 отправитель вычисляет C0=N0=EK1(r). На этапе 404 итерационная процедура начинается с решения относительно i∈U, где 1 ≤ i ≤m-1. Если i∈U, процесс выполнения программы переходит на этап 410. Если i∉U, то процесс выполнения программы переходит на этап 420.
Если i∈U, тогда на этапе 410 устанавливается Ci=Pi. На этапе 415 вычисляется
Ni=Pi ⊕ Si,
Mi=EK1(Ni),
Yi=Ni-1 ⊕ Mi,
Процесс выполнения программы переходит на этап 417.
Если i∈U, то на этапе 420 устанавливается Yi=Pi. На этапе 425 вычисляется
Mi=Pi ⊕ N i-1,
Ni=EK1(Mi),
Ci=Ni ⊕ Si,
Процесс выполнения программы переходит на этап 417. На этапе 417 индекс i увеличивается, то есть будут производиться манипуляции со следующим блоком. Если должен обрабатываться другой блок, то процесс выполнения программы возвращается к этапу 404. Если больше нет блоков для обработки, то процесс выполнения программы переходит на этап 430. Вышеупомянутый процесс предназначен для получения зашифрованных текстов от С0 до Сm-i, и блоков аутентификации от Y1 до Ym-i. Значения от N0 до Nm-i называются промежуточными блоками зашифрованного текста. На этапе 430 отправитель вычисляет значение Pm контрольной суммы как
Pm=Y1 ⊕ Y2 ⊕... ⊕Ym-1
На этапе 432 тег MAC См вычисляется с помощью шифрования Мm, причем Мm формируется в операции «исключающее ИЛИ» Pm с Nm-i. Мm шифруется ключом K1. Этот процесс описывается математически следующим образом:
Cm=Ek1 (Pm ⊕ Ni-1).
На этапе 434 отправитель добавляет тег MAC Сm к сообщению. На этапе 436 отправитель передает C0... Сm.
Фиг.4B является блок-схемой аппаратных средств, которые конфигурированы для выполнения вышеупомянутого режима CBC-A. Необходимо отметить, что фиг. 4B иллюстрирует реализацию, которая может быть альтернативой программной реализации, в которой процессор и память конфигурированы для исполнения набора команд для выполнения вышеупомянутого режима CBC-A. Элемент памяти 440 сохраняет блоки открытого текста Рi, ряд из которых должны быть зашифрованы, и все должны быть аутентифицированы. Элементы 450A, 450В, 450С, 450D, и 450E шифрования конфигурированы для выполнения криптографической функции с использованием ключа K1, которая была согласована между отправителем и получателем во время процесса переговоров о ключе, подробности которого здесь не описываются. Только для иллюстративных целей, на фиг.4B показаны пять (5) элементов шифрования для шифрования блоков открытого текста, но специалист в данной области техники знает, что может быть реализовано большее или меньшее число элементов шифрования, не затрагивая объем вариантов воплощения. Входным значением для первого элемента 450A шифрования является одноразовый номер r, который будет использоваться для определения шумовых блоков S0, S1..., Sm-i. Аппаратная конфигурация для генерации шумовых блоков здесь не показана. Выходным значением первого элемента 450A шифрования является первый блок C0 зашифрованного текста, который устанавливается равным первому промежуточному блоку N0 зашифрованного текста.
Входными значениями для других элементов 450В, 450С, 450D, и 450E шифрования являются промежуточные блоки открытого текста M1,...,Мm, индивидуально для каждого соответствующего элемента шифрования. Промежуточные блоки открытого текста M1,...,Мm являются выходными значениями элементов 444A, 444В, 444С, и 444D объединения. Входными значениями для каждого из элементов 444A, 444В, 444С, и 444D объединения являются блок Pi открытого текста, для i∉U, и промежуточный блок Ni-1 зашифрованного текста. В одном аспекте элементы объединения, описанные здесь, являются логическими элементами «исключающее ИЛИ». В другом аспекте элементы объединения являются групповыми операторами.
Выходными значениями элементов 450В, 450С, 450D, и 450E шифрования являются промежуточные блоки зашифрованного текста Ni, для i∉U. Каждый промежуточный блок зашифрованного текста Ni, для i∉U объединяется с соответствующим шумовым блоком Si в элементе 462A, 462В, 462С или 462D объединения для формирования блоков зашифрованного текста Ci, для i∉U. Промежуточные блоки зашифрованного текста Ni, для i∉U, являются также входным значением для одного из переключающих элементов 470A, 470В, 470С, или 470D, который описан ниже.
Элементы 455A, 455B, и 455C дешифрования конфигурированы для выполнения криптографической функции, которая является обратной той, которая используется для элементов 450A, 450В, 450С, 450D, и 450E шифрования. Входными значениями для элементов 455A, 455B, и 455C дешифрования являются промежуточные блоки зашифрованного текста Ni, для i∈U. Промежуточные блоки зашифрованного текста Ni, для i∈U, являются выводом элементов 442A, 442B, и 442C объединения. Входными значениями для каждого элемента 442A, 442B, или 442C объединения являются блок Pi открытого текста и шумовой блок Si. Выходными значениями элементов 455A, 455B, и 455C дешифрования являются промежуточные блоки открытого текста Мi, для i∈U. Промежуточные блоки открытого текста Mi, для i∈U, объединяются с предыдущим промежуточным блоком Мi зашифрованного текста в каждом из элементов 460A, 460B, и 460C объединения соответственно для формирования блоков аутентификации Ym-i.
На каждой стадии промежуточные блоки зашифрованного текста Ni, для i∈U, и промежуточного блока Ni,зашифрованного текста, для i∉U, вводятся в переключающий элемент 470A, 470В, 470С или 470D. Линия управления (не показана) от элемента обработки регулирует использование любого промежуточного блока зашифрованного текста для вычислений на следующей стадии.
На последней стадии тег аутентификации Сm формируется путем объединения последнего промежуточного блока Nm зашифрованного текста с первым шумовым блоком S0.
Фиг.5 является блок-схемой расшифровки и проверки сообщения, которое было зашифровано и аутентифицировано в режиме CBC-A. Предположим, что получатель получает переданные блоки C'0 ... C'm на этапе 500. Необходимо отметить, что для i∈U С'i было передано незашифрованным. На этапе 502 получатель расшифровывает C0 для получения r' и таким образом получает значения от S'0 до S'm. В альтернативных вариантах воплощения одноразовое число r может быть значением, которое согласовывается предварительно или определяется заранее.
На этапе 510, для 1 ≤ i ≤ m-1, получатель производит логическую операцию «исключающее ИЛИ» над C'i с S'i для формирования промежуточных блоков зашифрованного текста N'i согласно отношению
N'i=Ci ⊕ S'i,
На этапе 520 получатель формирует N'm=Cm ⊕ S'0, при этом получатель устанавливает N'0=C'0. На этапе 530 получатель расшифровывает последовательность промежуточных зашифрованных текстов N'0, ..., N'm для формирования блоков аутентификации Y'i...,Y'm, с использованием дешифрования в режиме CBC. Это продолжается итерационно и выражается в математических терминах как
Y'i=DK1(N'i) ⊕ N' i-1, для 1 ≤ i ≤ m-1
На этапе 540 начинается итерационная процедура для определения значения для P'i. Для i∈U процесс выполнения программы переходит к этапу 542, на котором получатель устанавливает P'i=C'i. Процесс выполнения программы переходит к этапу 544. Для i∈U процесс выполнения программы переходит к этапу 546, в котором блоки открытого текста устанавливаются в то же самое значение, что и блок аутентификации, то есть получатель устанавливает P'i=Y'i. Процесс выполнения программы переходит к этапу 544. На этапе 544 получатель определяет, должен ли быть обработан другой блок. Если это так, то процесс выполнения программы возвращается на этап 540. В противном случае процесс выполнения программы переходит к этапу 550. Теперь получатель расшифровал зашифрованный текст в блоки данных P'i..., P'm-i, но получателю необходимо проверить целостность.
Для проверки тега аутентификации на этапе 550 получатель подтверждает, что Y'm равно значению ( Y'1 ⊕ Y'2 ⊕... ⊕'Ym-1). Если тег аутентификации проверен, то сообщение находится в блоках P'i,..., P'm-i.
В альтернативном варианте воплощения, в котором уменьшается время обработки, проверка тега аутентификации на этапе 550 может быть выполнена немедленно после этапе 530, или перед этапом 540, или параллельно этапу 540. Следовательно, получатель может аутентифицировать полученное сообщение перед определением текста сообщения. Если полученное сообщение не аутентифицировано, то получатель может сохранить ресурсы обработки, опуская этапы для определения блоков открытого текста P'i. Напротив, режим IACBC, предложенный Jutla, требует определения блоков открытого текста P'i и шифрования их результирующей формы для расчета тестового тега аутентификации.
В дополнительных, альтернативных вариантах воплощения проверка тега аутентификации может быть выполнена сравнением значения (Y1 ⊕ Y2 ⊕... ⊕Ym-1) с другим параметром, отличным от Y'm. Фиг.6A показывает одну альтернативную аппаратную реализацию. Значение контрольной суммы CNK устанавливается равным (Y1 ⊕ Y2 ⊕... ⊕Ym-1). Значение CNK объединяется с промежуточным блоком зашифрованного текста N'm-1 элементом 600 объединения. Выходное значение элемента 600 объединения зашифровывается элементом 602 шифрования. Выходное значение элемента 602 шифрования объединяется с первым шумовым блоком S'0 в элементе 604 объединения. Выходное значение элемента 604 объединения сравнивается элементом 606 сравнения с последним блоком C'm зашифрованного текста, в котором соответствие указывает, что тег аутентификации проверен.
Фиг.6B является другим альтернативным вариантом аппаратного воплощения для проверки подлинности полученного сообщения. Значение CNK объединяется с промежуточным блоком N'm-i зашифрованного текста элементом 610 объединения. Выходное значение элемента 610 объединения зашифровывается элементом 612 шифрования. Последний блок C'm зашифрованного текста объединяется с первым шумовым блоком S'0 элементом 614 объединения. Если выходное значение элемента 612 шифрования совпадает с выводом элемента 614 объединения в элементе 616 сравнения, то полученное сообщение проверено.
Фиг.6C является другим альтернативным вариантом аппаратного воплощения для проверки подлинности полученного сообщения. Значение CNK объединяется с промежуточным блоком N'm-i зашифрованного текста элементом 620 объединения. Последний блок C'm зашифрованного текста объединяется с первым шумовым блоком S'0, элементом 622 объединения. Вывод элемента 622 объединения зашифровывается элементом 624 дешифрования. Если выходное значение элемента 624 дешифрования совпадает с выходным значением элемента 620 объединения в элементе 626 сравнения, то полученное сообщение проверено.
Фиг.6D является другим альтернативным аппаратным вариантом воплощения для проверки подлинности полученного сообщения. Последний блок C'm зашифрованного текста объединяется с первым шумовым блоком S' элементом 630 объединения. Выходное значение элемента 630 объединения расшифровывается элементом 632 дешифрования. Выходное значение элемента 632 дешифрования объединяется с промежуточным блоком N'm-i зашифрованного текста элементом 634 объединения. Если выходное значение элемента 634 объединения совпадает со значением CNK в элементе 636 сравнения, то полученное сообщение проверено.
Необходимо отметить, что для данного зашифрованного текста C'0 ..., C'm-i, тег аутентификации Сm является одинаковым для всех наборов U позиций открытого текста: процесс проверки тега аутентификации независим от набора позиций открытого текста. Проверка тега аутентификации подтверждает только, что отправитель послал зашифрованный текст C'0 ..., C'm-i и не подтверждает, какие позиции являются позициями открытого текста и какие позиции не являются позициями открытого текста. Это может позволить атакующей стороне заставить получателя использовать неправильный набор позиций открытого текста при расшифровке сообщения. Для предотвращения такой атаки отправитель и получатель должны использовать несколько иной метод проверки позиций открытого текста, которые применяются к конкретным сообщениям зашифрованного текста. Есть простые решения этой проблемы. Одно решение состоит в использовании стандартного соглашения, какие позиции являются позициями открытого текста. Другое решение состоит во включении в блоки данных представления набора U позиций открытого текста так, чтобы проверка зашифрованного текста включала проверку набора позиций открытого текста.
В режиме CBC-A функции шифрования и аутентификации являются надежными, если надежен основной блочный шифр. В данной области техники есть формальные выражения для того, что обозначено фразой «функции шифрования и аутентификации являются надежными», однако эти формальные выражения не относятся к предмету данного изобретения и здесь не описываются. Специалист в данной области техники хорошо знаком со значением фразы «функции шифрования и аутентификации являются надежными».
Подтверждения надежности не включены сюда, но некоторые наблюдения относительно надежности здесь представлены. Подтверждение надежности для функции шифрования режима CBC-A является тем же самым, что и для режимов IACBC И XCBC. Генерация тега аутентификации в режиме CBC-A отличается от генерации тега аутентификации в режимах IACBC И XCBC. Однако режим CBC-A проверяет тег аутентификации с использованием тех же самых этапов, что и режимы IACBC И XCBC. Таким образом, атакующая сторона может скомпрометировать функцию аутентификации режима CBC-A (то есть создать тег аутентификации режима CBC-A, который будет подтверждаться как корректный), только если атакующая сторона сможет скомпрометировать функции аутентификации режимов IACBC или XCBC. Так как проектировщики режимов IACBC И XCBC уже показали, что атакующая сторона не может скомпрометировать функции аутентификации режимов IACBC и XCBC, из этого следует, что атакующая сторона не сможет скомпрометировать функцию аутентификации режима CBC-A. Следовательно, функция аутентификации режима CBC-A является надежной.
Необходимо отметить, что отправитель может выбрать, посылать либо Pi, либо Ci, и аутентификация не будет скомпрометирована. Варианты воплощений, описанные здесь, позволяют стороне передавать и зашифрованные и незашифрованные блоки, не компрометируя надежность схемы аутентификации. Если Pi посылаются как открытый текст, то зашифрованная версия Pi является еще более секретной и непредсказуемой, так что Pi может использоваться для надежной аутентификации.
Общей практикой является определение MAC только как части последнего блока при использовании режима аутентификации. Представленные варианты воплощения могут также быть изменены так, чтобы только часть последнего блока передавалась как MAC.
Специалисты в данной области техники должны понимать, что информация и сигналы могут быть представлены с использованием любого из различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы, и микросхемы, на которые могут даваться ссылки в вышеизложенном описании, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.
Специалистам в данной области техники также должно быть понятно, что различные иллюстративные логические блоки, модули, схемы, и этапы алгоритма, описанные в связи с раскрытыми вариантами воплощения, могут быть осуществлены как электронные аппаратные средства, программное обеспечение или их комбинации. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы, и этапы описаны выше в целом в терминах их функциональных возможностей. Реализованы ли такие функциональные возможности как аппаратные средства или как программное обеспечение зависит от специфического приложения и ограничений проектирования, наложенных на систему в целом. Специалисты в данной области техники могут реализовать описанные функциональные возможности различными способами для каждого специфического приложения, но такие решения реализации не должны интерпретироваться как отход от объема данного изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с вариантами воплощения, раскрытыми здесь, могут быть осуществлены или выполнены с помощью универсального процессора, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных аппаратных компонентов, или любой их комбинации, предназначенной для исполнения описанных функций. Универсальный процессор может быть микропроцессором, но альтернативно процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может также быть реализован как комбинация компьютерных устройств, например комбинация DSP и микропроцессора, множество микропроцессоров как один или более микропроцессоров вместе с ядром DSP или любая другая такая конфигурация.
Этапы способа или алгоритма, описанного в связи с раскрытыми вариантами воплощения, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, исполняемом процессором, или в их комбинации. Программный модуль может постоянно находиться в оперативной памяти, флэш-памяти, постоянной памяти, памяти программируемого ПЗУ, памяти СППЗУ, регистрах, жестком диске, съемном диске, CD-ROM, или любой другой форме носителя данных, известного в данной области техники. Приведенный для примера носитель данных связан с процессором, такой процессор может читать и записывать информацию с/на носитель данных. Альтернативно носитель данных может быть неотъемлемой частью процессора. Процессор и носитель данных могут постоянно находиться в специализированных интегральных схемах. Специализированные интегральные схемы могут постоянно находиться в пользовательском терминале. Альтернативно процессор и носитель данных могут постоянно находиться, как дискретные компоненты, в пользовательском терминале.
Предыдущее описание раскрытых вариантов воплощения представлено для того, чтобы дать возможность любому специалисту в данной области техники осуществить или использовать данное изобретение. Различные модификации к этим вариантам воплощения будут без труда видны специалисту в данной области, и универсальные принципы, определенные здесь, могут быть применены к другим вариантам воплощения без отклонения от сущности или объема изобретения. Таким образом, данное изобретение не предназначено для ограничения представленными вариантами воплощения, но должно соответствовать самому широкому объему, совместимому с принципами и новыми особенностями, раскрытыми здесь.
Заявленные способ и устройство относятся системам защиты информации. Техническим результатом является создание системы для шифрования и аутентификации данных, в которой не требуется шифрование всех битов данных сообщения. Результат достигается тем, что в предназначенных для шифрования и аутентификации данных некоторые данные шифруются, а некоторые данные не шифруются, но все данные аутентифицируются. Различные формулировки для блоков аутентификации используются соответственно тому, занимает ли блок данных позицию открытого текста или позицию зашифрованного текста. Блоки аутентификации затем объединяются для формирования контрольной суммы, которая шифруется для формирования тега аутентификации. 8 н. и 7 з.п. ф-лы, 13 ил.
упорядочивают данные в множество блоков открытого текста, каждый размером согласно размеру блока шифра;
определяют по меньшей мере одну позицию открытого текста, для которой по меньшей мере один блок зашифрованного текста будет тем же самым, что и соответствующий блок открытого текста;
определяют множество шумовых блоков с использованием произвольных одноразовых чисел и первого ключа;
определяют множество промежуточных блоков зашифрованного текста, в которых первый промежуточный блок зашифрованного текста соответствует шифрованию одноразового числа, и остающиеся промежуточные блоки зашифрованного текста определены следующим образом:
для каждого из множества блоков открытого текста, определенных позицией открытого текста, объединяют блок открытого текста с соответствующим шумовым блоком; и
для каждого из множества блоков открытого текста, не определенных позицией открытого текста, формируют промежуточный блок открытого текста с использованием блока открытого текста и предыдущего промежуточного блока зашифрованного текста, и затем шифруют промежуточный блок открытого текста с использованием второго ключа;
определяют множество блоков зашифрованного текста, в котором множество блоков зашифрованного текста определяют путем:
установки первого блока зашифрованного текста равным первому промежуточному блоку зашифрованного текста;
установки каждого из блоков зашифрованного текста, определенных позицией открытого текста, равным соответствующему блоку открытого текста; и
определения каждого из оставшихся блоков зашифрованного текста путем объединения соответствующего блока промежуточного зашифрованного текста с соответствующим шумовым блоком;
определяют множество блоков аутентификации, в котором множество блоков аутентификации определены следующим образом:
если блок аутентификации связан с блоком открытого текста, который не определен позицией открытого текста, то устанавливают блок аутентификации равным блоку открытого текста;
если блок аутентификации связан с блоком открытого текста, который определен позицией открытого текста, то блок аутентификации определяют путем расшифровки связанного промежуточного блока зашифрованного текста к объединения расшифрованного связанного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
вычисляют тег аутентификации путем объединения всех из множества блоков аутентификации с шумовым блоком и затем шифрования результата объединения; и
добавляют тег аутентификации к множеству блоков зашифрованного текста.
выбирают применение шифрование блочным шифром или расшифровку блочного шифра;
выбирают для использования ключ и блочный шифр согласно набору предопределенных правил выбора; и
используют ключ с блочным шифром на множестве входных блоков для получения множества выходных блоков.
определяют множество шумовых блоков с использованием произвольного одноразового числа и первого ключа;
определяют множество промежуточных блоков зашифрованного текста путем объединения каждого из множества переданных блоков с соответствующим шумовым блоком;
определяют множество блоков аутентификации, в котором каждый из множества блоков аутентификации формируется путем расшифровки соответствующего промежуточного блока зашифрованного текста и затем объединения расшифрованного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
устанавливают каждый из множества блоков аутентификации, которые не связаны ни с какой предопределенной позицией открытого текста, как блок открытого текста;
устанавливают каждый из множества переданных блоков, которые связаны с любой предопределенной позицией открытого текста, как блок открытого текста; и
проверяют тег аутентификации путем определения, равняется ли последний блок аутентификации комбинации всех других блоков аутентификации.
по меньшей мере, один элемент памяти; и
по меньшей мере, один элемент обработки, конфигурированный для выполнения набора команд, сохраненных, по меньше мере, на одном элементе памяти, причем указанный набор команд предназначен для
упорядочивания данных в множество блоков открытого текста, каждый размером, соответствующим размеру блока шифра;
определения, по меньшей мере, одной позиции открытого текста, для которой, по меньшей мере, один блок зашифрованного текста будет тем же самым, что и соответствующий блок открытого текста;
определения множества шумовых блоков с использованием произвольного одноразового числа и первого ключа;
определения множества промежуточных блоков зашифрованного текста, в котором первый промежуточный блок зашифрованного текста соответствует шифрованию одноразового числа, и оставшиеся промежуточные блоки зашифрованного текста определены следующим образом:
для каждого из множества блоков открытого текста, определенных позицией открытого текста, объединяют блок открытого текста с соответствующим шумовым блоком; и
для каждого из множества блоков открытого текста, не определенных позицией открытого текста, формируют промежуточный блок открытого текста с использованием блока открытого текста и предыдущего промежуточного блока зашифрованного текста, и затем шифруют промежуточный блок открытого текста с использованием второго ключа;
определяют множество блоков зашифрованного текста, в котором множество блоков зашифрованного текста определяют путем
установки первого блока зашифрованного текста равным первому промежуточному блоку зашифрованного текста;
установки каждого из блоков зашифрованного текста, определенных позицией открытого текста, равным соответствующему блоку открытого текста; и
определения каждого из оставшихся блоков зашифрованного текста путем объединения соответствующего блока промежуточного зашифрованного текста с соответствующим шумовым блоком;
определяют множество блоков аутентификации, в котором множество блоков аутентификации определены следующим образом:
если блок аутентификации связан с блоком открытого текста, который не определен позицией открытого текста, то устанавливают блок аутентификации равным блоку открытого текста;
если блок аутентификации связан с блоком открытого текста, который определен позицией открытого текста, то определяют блок открытого текста путем расшифровки связанного промежуточного блока зашифрованного текста и объединения расшифрованного связанного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
вычисляют тег аутентификации путем объединения всех из множества блоков аутентификации с шумовым блоком, и затем шифрование результата объединения; и
добавляют тег аутентификации к множеству блоков зашифрованного текста.
по, меньшей мере, один элемент обработки, конфигурированный для выполнения набора команд, сохраненных, по меньшей мере, на одном элементе памяти, причем указанный набор команд предназначен для
определения множества шумовых блоков с использованием произвольного одноразового числа и первого ключа;
определения множества промежуточных блоков зашифрованного текста путем объединения каждого из множества переданных блоков с соответствующим шумовым блоком;
определения множества блоков аутентификации, в котором каждый из множества блоков аутентификации формируют, путем расшифровки соответствующего промежуточного блока зашифрованного текста и затем объединения расшифрованного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
установки каждого из множества блоков аутентификации, которые не связаны ни с какой предопределенной позицией открытого текста, как блока открытого текста;
установки каждого из множества переданных блоков, которые связаны с какой-либо предопределенной позицией открытого текста, как блока открытого текста; и
проверки тега аутентификации путем определения, равняется ли последний блок аутентификации комбинацией всех других блоков аутентификации.
средство для упорядочивания данных в множество блоков открытого текста, каждый размером, соответствующим размеру блока шифра;
средство для определения, по меньшей мере, одной позиции открытого текста, для которой, по меньшей мере, один блок зашифрованного текста будет тем же самым, что и соответствующий блок открытого текста;
средство для определения множества шумовых блоков с использованием произвольного одноразового числа и первого ключа;
средство для определения множества промежуточных блоков зашифрованного текста, в котором первый промежуточный блок зашифрованного текста соответствует шифрованию одноразового числа, и оставшиеся промежуточные блоки зашифрованного текста определены следующим образом:
для каждого из множества блоков открытого текста, определенных позицией открытого текста, объединяют блок открытого текста с соответствующим шумовым блоком; и
для каждого из множества блоков открытого текста, не определенных позицией открытого текста, формируют промежуточный блок открытого текста с использованием блока открытого текста и предыдущего промежуточного блока зашифрованного текста, и затем шифруют промежуточный блок открытого текста с использованием второго ключа;
средство для определения множества блоков зашифрованного текста, в котором множество блоков зашифрованного текста определяют путем
установки первого блока зашифрованного текста равным первому промежуточному блоку зашифрованного текста;
установки каждого из блоков зашифрованного текста, определенного позицией открытого текста, равным соответствующему блоку открытого текста; и
определения каждого из оставшихся блоков зашифрованного текста путем объединения соответствующего блока промежуточного зашифрованного текста с соответствующим шумовым блоком;
средство для определения множества блоков аутентификации, в котором множество блоков аутентификации определяют следующим образом:
если блок аутентификации связан с блоком открытого текста, который не определен позицией открытого текста, то устанавливают блок аутентификации равным блоку открытого текста;
если блок аутентификации связан с блоком открытого текста, который определен позицией открытого текста, то определяют блок аутентификации путем расшифровки связанного промежуточного блока зашифрованного текста и объединения расшифрованного связанного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
средство для вычисления тега аутентификации путем объединения всех из множества блоков аутентификации с шумовым блоком и затем шифрования результата объединения;
и средство для добавления тега аутентификации к множеству блоков зашифрованного текста.
средство для определения множества шумовых блоков с использованием произвольного одноразового числа и первого ключа;
средство для определения множества промежуточных блоков зашифрованного текста путем объединения каждого из множества переданных блоков с соответствующим шумовым блоком;
средство для определения множества блоков аутентификации, в котором каждый из множества блоков аутентификации формируется путем расшифровки соответствующего промежуточного блока зашифрованного текста и затем объединения расшифрованного промежуточного блока зашифрованного текста с предыдущим промежуточным блоком зашифрованного текста;
средство для установки каждого из множества блоков аутентификации, которые не связаны ни с какой предопределенной позицией открытого текста, как блока открытого текста;
средство для установки каждого из множества переданных блоков, которые связаны с какой-либо предопределенной позицией открытого текста, как блока открытого текста; и
средство для проверки тега аутентификации определением, равняется ли последний блок аутентификации комбинацией всех других блоков аутентификации.
генерируют набор позиций открытого текста
шифруют первую часть передаваемых данных и вторую часть передаваемых данных в зашифрованный текст, при этом первая часть передаваемых данных определена набором позиций открытого текста, и вторая часть передаваемых данных не связана ни с одной из набора позиций открытого текста;
определяют множество промежуточных блоков зашифрованного текста через итерационную процедуру;
генерируют множество блоков аутентификации, причем каждый из первой части множества блоков аутентификации установлен равным соответствующему блоку из первой части передаваемых данных, и каждый из второй части множества блоков аутентификации получен объединением соответствующего промежуточного блока зашифрованного текста и предыдущего промежуточного блока зашифрованного текста;
генерируют тег аутентификации путем объединения каждого из множества блоков аутентификации и шумового блока и зашифровывания результата комбинирования;
передают открытый текст, зашифрованный текст и тег аутентификации, при этом открытый текст является первой частью передаваемых данных, определенных набором позиций открытого текста.
средство для генерации набора позиций открытого текста;
средство для шифрования первой части передаваемых данных и второй части передаваемых данных в зашифрованный текст, причем первая часть передаваемых данных определена набором позиций открытого текста, и вторая часть передаваемых данных не связана ни с одной из набора позиций открытого текста;
средство для определения множества промежуточных блоков зашифрованного текста посредством итерационной процедуры; средство для генерации множества блоков аутентификации, в котором каждый из первой части множества блоков аутентификации установлен равным соответствующему блоку первой части передаваемых данных, и каждый из второй части множества блоков аутентификации получен объединением соответствующего промежуточного блока зашифрованного текста и предыдущего промежуточного блока зашифрованного текста;
средство для генерации тега аутентификации путем объединения каждого из множества блоков аутентификации и шумового блока и шифрованием результата объединения;
средство для передачи открытого текста, зашифрованного текста и тега аутентификации, причем открытый текст является первой частью передаваемых данных, определенных набором позиций открытого текста.
US 4918728 А, 17.04.1990 | |||
СПОСОБ ФОРМИРОВАНИЯ КЛЮЧА ШИФРОВАНИЯ/ДЕШИФРОВАНИЯ | 2000 |
|
RU2180469C2 |
US 2001046292 А1, 29.11.2001 | |||
УСТРОЙСТВО КОНФИДЕНЦИАЛЬНОЙ СВЯЗИ | 1997 |
|
RU2117401C1 |
Авторы
Даты
2008-10-20—Публикация
2003-07-24—Подача