RU2334268C2 - Команды для поддержки обработки шифрованного сообщения - Google Patents
Команды для поддержки обработки шифрованного сообщения Download PDFInfo
- Publication number
- RU2334268C2 RU2334268C2 RU2005121915/09A RU2005121915A RU2334268C2 RU 2334268 C2 RU2334268 C2 RU 2334268C2 RU 2005121915/09 A RU2005121915/09 A RU 2005121915/09A RU 2005121915 A RU2005121915 A RU 2005121915A RU 2334268 C2 RU2334268 C2 RU 2334268C2
- Authority
- RU
- Russia
- Prior art keywords
- value
- bit
- command
- operand
- encryption
- Prior art date
Links
- 239000003607 modifier Substances 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 14
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
- Telephone Function (AREA)
- Executing Machine-Instructions (AREA)
- Stored Programmes (AREA)
- Peptides Or Proteins (AREA)
- Debugging And Monitoring (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Изобретение относится к архитектуре вычислительной системы, в частности к новым командам, которые расширяют z-архитектуру фирмы IBM и могут эмулироваться другими архитектурами. Техническим результатом является повышение эффективности и быстродействия обработки данных, обеспечение возможности использования заявленного формата команд для различных архитектур. Указанный результат достигается за счет того, что команда микропроцессора задает единицу памяти, подлежащую шифрованию или расшифрованию, и зашифровывает или расшифровывает эту единицу памяти. Указанная команда имеет поле, определяющее значение кода функции, поле, определяющее значение бита-модификатора, причем одно значение кода функции соответствует операции запроса, вызывающей сохранение в блоке параметров слова состояния, имеющего множество разрядов, причем значение определенного разряда слова состояния, равное двоичной «1», указывает на то, что функция установлена, значение, равное двоичному «0», указывает на то, что функция не установлена. 3 н. и 12 з.п. ф-лы, 30 ил.
Description
Изобретение относится к архитектуре вычислительной системы и, в частности, к новым командам, которые расширяют z-архитектуру фирмы IBM и могут эмулироваться другими архитектурами.
До появления настоящего изобретения, начиная с 60-х годов прошлого века, когда были созданы компьютеры, получившие известность под именем системы S/360, и до настоящего времени трудом многих талантливых инженеров компании IBM была создана особая архитектура, которая в силу своей естественной принадлежности к вычислительным системам получила название "мэйнфрейм" (от англ. "mainframe" - мощный универсальный компьютер) и принципы работы которой определяют архитектуру машины, описывая реализуемые в мэйнфрейме команды, которые были изобретены в компании IBM и которые с учетом их признанного за прошедшие годы значительного вклада в усовершенствование вычислительных машин, представленных мэйнфреймами, были включены в принципы работы систем компании IBM. Первое издание "Принципов работы z-архитектуры" вышло в свет в декабре 2000 г. в виде опубликованного стандартного справочного руководства SA 22-7832-00.
Авторами установлено, что развитию данной области техники могут способствовать новые дополнительные команды, или инструкции, которые могут быть включены в компьютеры z-архитектуры, а также могут эмулироваться другими разработчиками в более простых машинах, о чем сказано ниже.
В настоящем изобретении предлагается способ шифрования и расшифрования памяти вычислительной среды, заключающийся в том, что посредством команды микропроцессора задают единицу памяти, подлежащую шифрованию или расшифрованию, и зашифровывают или расшифровывают эту единицу памяти. При осуществлении предлагаемого в изобретении способа (i) указанная команда соотнесена с полем, определяющим значение кода функции, и еще одним полем, определяющим значение бита-модификатора, а выполняющий команду процессор определяет, подлежит ли выполнению операция шифрования или операция расшифрования, на основании значения кода функции и значения бита-модификатора, и (ii) одно дополнительное значение кода функции соответствует операции запроса, вызывающей сохранение в блоке параметров слова состояния, имеющего множество разрядов, причем если определенный разряд слова состояния имеет первое двоичное значение, то этот разряд соответствует значению кода функции, соответствующему установленной функции, а если определенный разряд слова состояния имеет второе двоичное значение, то этот разряд соответствует значению кода функции, соответствующему неустановленной функции.
Особенности предпочтительных вариантов осуществления изобретения станут очевидными для специалиста из приведенного ниже подробного описания изобретения, сопровождаемого чертежами, на которых показано:
на фиг.1 - команда "шифрование сообщения" (КМ) в формате RRE,
на фиг.2 - команда "шифрование сообщения со сцеплением" (КМС) в формате RRE,
на фиг.3 - таблица, в которой приведены коды функций для команды "шифрование сообщения", показанной на фиг.1,
на фиг.4 - таблица, в которой приведены коды функций для команды "шифрование сообщения со сцеплением", показанной на фиг.2,
на фиг.5 - присвоение значений командам КМ и КМС в регистре общего назначения (GR),
на фиг.6 - символ, обозначающий побитовую операцию "исключающее ИЛИ" (XOR),
на фиг.7 - символы для шифрования и расшифрования по алгоритму шифрования данных (DEA),
на фиг.8 - формат блока параметров для КМ-запроса,
на фиг.9 - блок параметров KM-DEA,
на фиг.10 - операция шифрования KM-DEA,
на фиг.11 - операция расшифрования KM-DEA,
на фиг.12 - формат блока параметров для KM-TDEA-128,
на фиг.13 - операция шифрования KM-TDEA-128,
на фиг.14 - операция расшифрования KM-TDEA-128,
на фиг.15 - формат блока параметров для KM-TDEA-192,
на фиг.16 - операция шифрования KM-TDEA-192,
на фиг.17 - операция расшифрования KM-TDEA-192,
на фиг.18 - формат блока параметров для КМС-запроса,
на фиг.19 - формат блока параметров для KMC-DEA,
на фиг.20 - операция шифрования KMC-DEA,
на фиг.21 - операция расшифрования KMC-DEA,
на фиг.22 - формат блока параметров для KMC-TDEA-128,
на фиг.23 - операция шифрования KMC-TDEA-128,
на фиг.24 - операция расшифрования KMC-TDEA-128,
на фиг.25 - формат блока параметров для KMC-TDEA-192,
на фиг.26 - операция шифрования KMC-TDEA-192,
на фиг.27 - операция расшифрования KMC-TDEA-192,
на фиг.28 - таблица, в которой показан приоритет выполнения команд КМ и КМС,
на фиг.29 - криптографический сопроцессор,
на фиг.30 - обобщенный предпочтительный вариант осуществления памяти компьютера, в которой хранятся команды, соответствующие предпочтительному варианту изобретения, и данные, а также механизм выборки, дешифрации и выполнения таких команд либо в вычислительной системе, в которой используются команды этой архитектуры, либо при эмуляции таких команд.
Сначала рассматриваются команды "шифрование сообщения" (КМ) и "шифрование сообщения со сцеплением" (КМС), после чего описана предпочтительная вычислительная система для выполнения таких команд. В качестве альтернативы рассмотрена также вторая предпочтительная вычислительная система, которая для выполнения таких команд эмулирует другую вычислительную систему.
Команда "шифрование сообщения" (КМ)
На фиг.1 показана команда "шифрование сообщения" (КМ) в формате RRE.
Команда "шифрование сообщения со сцеплением" (КМС)
На фиг.2 показана команда "шифрование сообщения со сцеплением" (КМС) в формате RRE.
Выполняется функция, указываемая кодом функции в регистре 0 общего назначения.
Разряды 16-23 команды и поле R1 игнорируются. Разряды 57-63 регистра 0 общего назначения содержат код функции. На фиг.3 и 4 показаны коды функций, присвоенные командам "шифрование сообщения" и "шифрование сообщения со сцеплением", соответственно. Все другие коды функций свободны (не присвоены). Для функций шифрования разряд 56 является битом-модификатором, который определяет, должна ли выполняться операция шифрования (т.е. зашифрования) или операция расшифрования. Для всех остальных функций бит-модификатор игнорируется. Все остальные разряды регистра 0 общего назначения игнорируются. Регистр 1 общего назначения содержит логический адрес крайнего левого байта блока параметров, хранящегося в памяти. В режиме 24-разрядной адресации содержимым разрядов 40-63 регистра 1 общего назначения является адрес, а содержимое разрядов 0-39 игнорируется. В режиме 31-разрядной адресации содержимым разрядов 33-63 регистра 1 общего назначения является адрес, а содержимое разрядов 0-32 игнорируется.
В режиме 64-разрядной адресации содержимым разрядов 0-63 регистра 1 общего назначения является адрес.
На фиг.3 показаны коды функций для команды "шифрование сообщения".
На фиг.4 показаны коды функций для команды "шифрование сообщения со сцеплением".
Все другие коды функций свободны (не присвоены). Функция запроса является средством указания доступности других функций. Для функции запроса содержимое регистров R1, R2 и R1+1 общего назначения игнорируется.
Для всех остальных функций второй операнд шифруется в соответствии с тем, как это задано кодом функции с использованием криптографического ключа в блоке параметров, и полученный результат помещается в местоположение первого операнда. Для команды "шифрование сообщения со сцеплением" при шифровании также используется начальное значение цепочки в блоке параметров, и в процессе выполнения операции происходит обновление значения цепочки.
Поле R1 обозначает регистр общего назначения и должно соответствовать регистру с четным номером, в противном случае определяется исключительная ситуация при нарушении заданных условий.
Поле R2 обозначает четно-нечетную пару регистров общего назначения и должно соответствовать регистру с четным номером, в противном случае определяется исключительная ситуация при нарушении заданных условий.
Местоположение крайнего левого байта первого и второго операндов задается соответственно содержимым регистров R1 и R2 общего назначения. Число байтов в местоположении второго операнда задается в регистре R2+1 общего назначения. Длина первого операнда равна длине второго операнда.
При выполнении операции адреса в регистрах R1 и R2 общего назначения увеличиваются на число обработанных байтов из второго операнда, а длина в регистре R2+1 общего назначения уменьшается на такое же число байтов. Формирование и обновление адресов и длины зависит от режима адресации.
В режиме 24-разрядной адресации содержимым разрядов 40-63 регистров R1 и R2 общего назначения являются адреса первого и второго операндов, соответственно, а содержимое разрядов 0-39 игнорируется; разряды 40-63 обновленных адресов заменяют собой соответствующие разряды в регистрах R1 и R2 общего назначения, переносы разряда 40 обновленного адреса игнорируются, а содержимое разрядов 32-39 регистров R1 и R2 общего назначения устанавливается на нуль. В режиме 31-разрядной адресации содержимым разрядов 33-63 регистров R1 и R2 общего назначения являются адреса первого и второго операндов, соответственно, а содержимое разрядов 0-32 игнорируется; разряды 33-63 обновленных адресов заменяют собой соответствующие разряды в регистрах R1 и R2 общего назначения, переносы разряда 33 обновленного адреса игнорируются, а содержимое разряда 32 регистров R1 и R2 общего назначения устанавливается на нуль. В режиме 64-разрядной адресации содержимым разрядов 0-63 регистров R1 и R2 общего назначения являются адреса первого и второго операндов, соответственно; разряды 0-63 обновленных адресов заменяют собой содержимое регистров R1 и R2 общего назначения, а переносы разряда 0 игнорируются.
В режимах как 24-разрядной, так и 31-разрядной адресации содержимым разрядов 32-63 регистра R2+1 общего назначения является 32-разрядное целое двоичное число без знака, которое задает число байтов в первом и втором операндах, а содержимое разрядов 0-31 игнорируется; разряды 32-63 с обновленным значением заменяют собой соответствующие разряды в регистре R2+1 общего назначения. В режиме 64-разрядной адресации содержимым разрядов 0-63 регистра R2+1 общего назначения является 64-разрядное целое двоичное число без знака, которое задает число байтов в первом и втором операндах, а обновленное значение заменяет собой содержимое регистра R2+1 общего назначения.
В режимах как 24-разрядной, так и 31-разрядной адресации содержимое разрядов 0-31 регистров R1, R2 и R2+1 общего назначения всегда остается неизменным. На фиг.5 показано содержимое описанных выше регистров общего назначения.
В режиме адресации с использованием регистров доступа (AR) регистры доступа 1, R1 и R2 определяют адресные пространства, содержащие соответственно блок параметров, первый операнд и второй операнд.
Получаемый результат аналогичен результату обработки, начинаемой с левого конца первого и второго операндов и продолжаемой вправо блок за блоком. Операция завершается, когда обработаны все исходные байты во втором операнде, указанные в регистре R2+1 общего назначения (что именуется нормальным завершением), или когда обработано заданное ЦП число блоков, которое меньше длины второго операнда (что именуется частичным завершением). Заданное ЦП число блоков зависит от модели и может быть различным при каждом выполнении команды. Как правило, заданное ЦП число блоков не равно нулю. В некоторых нештатных ситуациях такое число может равняться нулю, и может быть задан код условия 3 без продвижения вперед (зацикливание). Вместе с тем ЦП обеспечивает защиту от бесконечного повторения в таком случае зацикливания.
Результаты в местоположении первого операнда и поле значения цепочки являются непредсказуемыми при наступлении любой из следующих ситуаций:
1. Поле криптографического ключа перекрывает любую часть первого операнда.
2. Поле значения цепочки перекрывает любую часть первого или второго операнда.
3. Первый и второй операнды деструктивно перекрывают друг друга. Считается, что операнды перекрывают друг друга деструктивно, если местоположение первого операнда используется в качестве источника после перемещения в него данных при условии, что обработка осуществляется слева направо по одному байту за раз.
Если операция закончилась ввиду нормального завершения, устанавливается код условия 0, а полученное значение в регистре R2+1 равно нулю. Если операция закончилась ввиду частичного завершения, устанавливается код условия 3, и полученное значение в регистре R2+1 не равно нулю.
Если выявлено событие регистрации программных событий (PER-событие, от англ. "Program Event Recording") с изменением памяти, в местоположениях первого операнда дополнительно сохраняется менее 4 Кбайт, после чего передается отчет о событии.
Если длина второго операнда изначально равна нулю, доступ к блоку параметров, первому и второму операндам не осуществляется, регистры R1, R2 и R2+1 общего назначения не меняются, и устанавливается код условия 0.
Если содержимое полей R1 и R2 одинаково, содержимое указанных регистров увеличивается лишь на количество обработанных байтов, а не на удвоенное число обработанных байтов.
С точки зрения других ЦП и канальных программ ссылки на блок параметров и хранимые в памяти операнды могут являться ссылками с множественным доступом, доступ к таким ячейкам в памяти необязательно должен быть осуществляться одновременно с доступом к блоку параметров, а последовательность таких доступов или ссылок не определена.
В некоторых необычных ситуациях выполнение команды может быть завершено путем установки кода условия 3 без обновления регистров и значения цепочки, чтобы отразить последнюю обработанную единицу первого и второго операндов. В таком случае размер обработанного блока зависит от ситуации и модели, но ограничен таким образом, чтобы части первого и второго обработанных операндов, о которых не был передан отчет, не перекрывали друг друга в памяти. В любом случае применительно ко всем обработанным местоположениям первого операнда применяются разряды изменений и передаются отчеты о PER-событиях с изменением памяти, когда это применимо.
О возникновении исключительных ситуаций по доступу (исключениях из доступа) может сообщаться в отношении более крупной части операнда, чем часть, обрабатываемая за одну операцию выполнения команды; вместе с тем, исключения из доступа не распознаются в отношении местоположений за пределами длины операнда, а также местоположений на расстоянии более 4 Кбайт от текущего обрабатываемого местоположения.
Символы, используемые при описании функций
При дальнейшем описании функций "шифрование сообщения" и "шифрование сообщения со сцеплением" используются следующие символы.
Для функций, задействующих алгоритм шифрования данных DEA (от англ. "Data Encryption Algorithm"), разряд четности ключа DEA в каждом байте ключа DEA игнорируется, и операция продолжается в нормальном режиме независимо от четности ключа DEA. Более подробно алгоритм шифрования данных описан в стандарте Data Encryption Algorithm, ANSI-X3.92.1981, American National Standard for Information Systems (Американский национальный стандарт для информационных систем).
На фиг.6 представлен символ для побитовой операции "исключающее ИЛИ", а на фиг.7 - символы для шифрования и расшифрования по алгоритму шифрования данных (DEA).
КМ-запрос (код КМ-функции 0)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.8 показан формат блока параметров, используемого для функции КМ-запроса.
В блоке параметров хранится 128-разрядное слово состояния. Разряды 0-127 данного поля соответствуют кодам функций соответственно 0-127 команды "шифрование сообщения". Если разряд равен единице, соответствующая функция установлена; в противном случае функция не установлена.
По завершении выполнения функции КМ-запроса применяется код условия 0; код условия 3 к данной функции неприменим.
KM-DEA (код КМ-функции 1)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.9 показан формат блока параметров, используемого для функции KM-DEA.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, Р2..., Pn) в операнде 2 зашифровываются по алгоритму DEA с помощью 64-разрядного криптографического ключа в блоке параметров. Каждый блок открытого текста зашифровывается независимо от других (отдельно), т.е. операция шифрования выполняется без сцепления блоков. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Эта операция показана на фиг.10.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму DEA с помощью 64-разрядного криптографического ключа в блоке параметров. Каждый блок шифртекста расшифровывается независимо от других (отдельно), т.е. операция расшифрования выполняется без сцепления блоков. Блоки открытого текста (Р1, Р2..., Pn) сохраняются в операнде 1. Операция расшифрования KM-DEA показана на фиг.11.
KM-TDEA-128 (код КМ-функции 2)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5. Блок параметров, используемый для функции KM-TDEA-128, показан на фиг.12.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, Р2..., Pn) в операнде 2 зашифровываются по алгоритму TDEA (Triple DEA) с помощью двух 64-разрядных криптографических ключей в блоке параметров. Каждый блок открытого текста зашифровывается независимо от других (отдельно), т.е. операция шифрования выполняется без сцепления блоков. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Операция шифрования KM-TDEA-128 показана на фиг.13.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму TDEA с помощью двух 64-разрядных криптографических ключей в блоке параметров. Каждый блок шифртекста расшифровывается независимо от других (отдельно), т.е. операция расшифрования выполняется без сцепления блоков. Блоки открытого текста (Р1, Р2..., Pn) сохраняются в операнде 1. Операция расшифрования KM-TDEA-128 показана на фиг.14.
KM-TDEA-192 (код КМ-функции 3)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.15 показан формат блока параметров, используемого для функции KM-TDEA-192.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, Р2..., Pn) в операнде 2 зашифровываются по алгоритму TDEA (Triple DEA) с помощью трех 64-разрядных криптографических ключей в блоке параметров. Каждый блок открытого текста зашифровывается независимо от других (отдельно), т.е. операция шифрования выполняется без сцепления блоков. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Операция шифрования KM-TDEA-192 показана на фиг.16.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму TDEA с помощью трех 64-разрядных криптографических ключей в блоке параметров. Каждый блок шифртекста расшифровывается независимо от других (отдельно), т.е. операция расшифрования выполняется без сцепления блоков. Блоки открытого текста (Р1, Р2..., Pn) сохраняются в операнде 1. Операция расшифрования KM-TDEA-192 показана на фиг.17.
КМС-запрос (код КМС-функции 0)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.18 показан формат блока параметров, используемого для функции КМС-запроса.
В блоке параметров хранится 128-разрядное слово состояния. Разряды 0-127 данного поля соответствуют кодам функций 0-127 команды "шифрование сообщения со сцеплением". Если разряд равен единице, соответствующая функция установлена; в противном случае функция не установлена.
По завершении выполнения функции КМС-запроса применяется код условия 0; код условия 3 к данной функции неприменим.
KMC-DEA (код КМС-функции 1)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.19 показан формат блока параметров, используемого для функции KMC-DEA.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, Р2..., Pn) в операнде 2 шифруются по алгоритму DEA с помощью 64-разрядного криптографического ключа и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки ICV (от англ. "Initial Chaining Value") и используемым для получения первого блока шифртекста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока шифртекста является соответствующий предыдущий блок шифртекста. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки OCV (от англ. "Output Chaining Value") и сохраняется в поле значения цепочки блока параметров. Операция шифрования KMC-DEA показана на фиг.20.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму DEA с помощью 64-разрядного криптографического ключа и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки (ICV) и используемым для получения первого блока открытого текста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока открытого текста является соответствующий предыдущий блок шифртекста. Блоки открытого текста (P1, P2..., Pn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки (OCV) и сохраняется в поле значения цепочки блока параметров. Операция расшифрования KMC-DEA показана на фиг.21.
KMC-TDEA-128 (код КМС-функции 2)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.22 показан формат блока параметров, используемого для функции KMC-TDEA-128.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, P2..., Pn) в операнде 2 зашифровываются по алгоритму TDEA с помощью двух 64-разрядных криптографических ключей и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки (ICV) и используемым для получения первого блока шифртекста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока шифртекста является соответствующий предыдущий блок шифртекста. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки (OCV) и сохраняется в поле значения цепочки блока параметров. Операция шифрования KMC-TDEA-128 показана на фиг.23.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму TDEA с помощью двух 64-разрядных криптографических ключей и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки (ICV) и используемым для получения первого блока открытого текста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока открытого текста является соответствующий предыдущий блок шифртекста. Блоки открытого текста (P1, P2..., Pn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки (OCV) и сохраняется в поле значения цепочки блока параметров. Операция расшифрования KMC-TDEA-128 показана на фиг.24.
KMC-TDEA-192 (код КМС-функции 3)
Местоположения операндов и адреса, используемые этой командой, соответствуют показанным на фиг.5.
На фиг.25 показан формат блока параметров, используемого для функции KMC-TDEA-192.
Если бит-модификатор в регистре 0 общего назначения равен нулю, выполняется операция шифрования; 8-разрядные блоки открытого текста (Р1, P2..., Pn) в операнде 2 зашифровываются по алгоритму TDEA с помощью трех 64-разрядных криптографических ключей и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки (ICV) и используемым для получения первого блока шифртекста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока шифртекста является соответствующий предыдущий блок шифртекста. Блоки шифртекста (C1, C2..., Cn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки (OCV) и сохраняется в поле значения цепочки блока параметров. Операция шифрования KMC-TDEA-192 показана на фиг.26.
Если бит-модификатор в регистре 0 общего назначения равен единице, выполняется операция расшифрования; 8-разрядные блоки шифртекста (C1, C2..., Cn) в операнде 2 расшифровываются по алгоритму TDEA с помощью трех 64-разрядных криптографических ключей и 64-разрядного значения цепочки в блоке параметров.
Значением цепочки, называемым начальным значением цепочки (ICV) и используемым для получения первого блока открытого текста, является значение цепочки в блоке параметров; значением цепочки для получения каждого последующего блока открытого текста является соответствующий предыдущий блок шифртекста. Блоки открытого текста (Р1, P2..., Pn) сохраняются в операнде 1. Последний блок шифртекста является выходным значением цепочки (OCV) и сохраняется в поле значения цепочки блока параметров. Операция расшифрования KMC-TDEA-192 показана на фиг.27.
Особые условия для КМ и КМС
При наличии любого из нижеперечисленных условий определяется исключительная ситуация при нарушении заданных условий и не предпринимаются какие-либо действия:
1. Разряды 57-63 регистра 0 общего назначения указывают код неприсвоенной или неустановленной функции.
2. Поле R1 или R2 обозначает регистр с нечетным номером или регистр 0 общего назначения.
3. Длина второго операнда не является кратной размеру блока данных выбранной функции (для определения размера блоков данных для функций "шифрование сообщения" см. фиг.7-3 на стр.7-35; для определения размера блоков данных для функций "шифрование сообщения со сцеплением" см. фиг.7-4 на стр.7-35). Данное условие возникновения исключительной ситуации не распространяется на функции запроса.
Получаемый код условия:
0 нормальное завершение
1 --
2 --
3 частичное завершение
Программные исключительные ситуации:
по доступу (выборка, операнд 2 и криптографический ключ; сохранение, операнд 1, выборка и сохранение, значение цепочки);
при выполнении операции (если не установлена вспомогательная программа засекречивания сообщений);
при нарушении заданных условий.
На фиг.28 приведена таблица, иллюстрирующая приоритет выполнения команд КМ и КМС.
Примечания по программированию:
1. Если задан код условия 3, регистры общего назначения, содержащие адресы операндов и длину, а для команды "шифрование сообщения со сцеплением" - также значение цепочки в блоке параметров, обычно обновляют таким образом, что программа может легко вернуться к команде и продолжить выполнение операции.
В нештатных ситуациях ЦП защищает от бесконечного повторения операций в случаях зацикливания, а также защищает от установки кода условия 3, если первый и второй операнды, подлежащие повторной обработке, частично перекрывают друг друга в памяти. Таким образом, каждый раз, когда задан код условия 3, программа может успешно вернуться к команде, не зацикливаясь и не делая повторных попыток выполнить команду.
2. Если длина второго операнда изначально не равна нулю и задан код условия 0, обновление регистров происходит таким же образом, как и при коде условия 3. Для команды "шифрование сообщения со сцеплением" значение цепочки в данном случае таково, что обработка дополнительных операндов может осуществляться таким же образом, как если бы они были частью той же цепочки.
3. Для экономии объема памяти первый и второй операнды могут точно перекрывать друг друга либо исходная точка первого операнда может располагаться слева от исходной точки второго операнда. В любом случае взаимное наложение не является деструктивным (разрушающим).
Криптографический сопроцессор
В предпочтительном варианте осуществления изобретения предусматривается использование криптографического сопроцессора (сопроцессор криптографической поддержки), который может использоваться в сочетании с описанными выше командами, а также для выполнения шифрованных сообщений и как вспомогательное средство для решения разнообразных задач сцепления сообщений, которые могут использоваться при сцеплении и криптографическом применении в сочетании с соответствующими командами.
На фиг.29 показан криптографический сопроцессор, который непосредственно присоединен к тракту данных, общему для всех внутренних исполнительных устройств на универсальном микропроцессоре, который имеет несколько операционных конвейеров. Внутренняя шина 1 микропроцессора, которая является общей для всех остальных исполнительных устройств, соединена с криптографическим блоком 2 управления, который отслеживает на шине команды процессора, которые он должен выполнять.
Криптографический блок управления служит криптографическим сопроцессором, который непосредственно связан с трактом данных, общим для всех внутренних исполнительных устройств центрального процессора на универсальном микропроцессоре, обеспечивающих доступные аппаратные средства (E0...En) или из их сочетания в предпочтительном варианте с операционными конвейерами. При появлении в регистре 3 команд криптографической команды блок 2 управления вызывает из доступных аппаратных средств соответствующий алгоритм. Данные операнда через входной регистр 4, действующий по принципу обслуживания в порядке поступления (FIFO-регистр), поступают по той же внутренней шине микропроцессора. По завершении операции в регистре 6 состояния ставится флаг, а результаты становятся доступными для чтения с выходного FIFO-регистра 5.
В проиллюстрированном предпочтительном варианте осуществления изобретение рассчитано на возможность наращивания для включения стольких аппаратурных машин, сколько требуется конкретной реализацией в зависимости от задач, которые ставятся перед системой. Пути передачи данных в направлении входного и выходного регистров 7 являются общими для всех машин.
В предпочтительном варианте осуществления изобретения криптографические функции реализованы в аппаратном исполнительном устройстве на ЦП, чем достигается меньшее время ожидания (задержка) при вызове и выполнении операций шифрования и повышается эффективность.
За счет сокращения времени ожидания значительно расширяются возможности универсальных процессоров в системах, где часто выполняется много операций шифрования, в особенности, если при этом речь идет лишь о небольших объемах данных. Это делает возможной реализацию, способную существенно ускорить процессы, связанные с осуществлением защищенных онлайновых транзакций. Наиболее распространенные способы обеспечения безопасности онлайновых транзакций предусматривают применение набора из трех алгоритмов. Первый алгоритм используется один раз за сеанс и может быть реализован аппаратно или программно, а остальные алгоритмы вызываются при каждой транзакции во время сеанса, при этом настоящее изобретение исключает затраты времени, связанные и с задержкой при вызове внешних аппаратных средств, и с выполнением алгоритма программными средствами.
На фиг.30 концептуально показана реализация предпочтительного варианта осуществления изобретения на примере мэйнфрейма с описанным выше микропроцессором, который, как доказано экспериментальным путем в компании IBM, может эффективно использоваться в массовой реализации формата команд предложенной архитектуры для компьютеров с функциональностью длинного смещения, который используют программисты, в наши дни обычно программисты, работающие на языке "Си". Такие форматы команд, которые хранятся в запоминающем устройстве, может реализовать "родной" для них сервер IBM z-архитектуры или же, как возможный вариант, вычислительные машины на базе других архитектур. Их могут эмулировать существующие и будущие серверы IBM класса мэйнфрейм и другие машины IBM (например, серверы серии p и серверы серии x). Их могут выполнять использующие оперативную систему Linux разнообразные компьютеры на базе аппаратных средств IBM, Intel, AMD, Sun Microsystems и других компаний. Помимо выполнения таким аппаратным обеспечением с z-архитектурой Linux также может применяться в машинах, использующих эмуляцию на базе Hercules, UMX, FXI или Platform Solutions, в которых режим выполнения в целом представляет собой режим эмуляции. В режиме эмуляции осуществляют дешифрацию конкретной эмулируемой команды и формируют стандартную подпрограмму для реализации отдельной команды в виде стандартной подпрограммы или драйвера на языке С или создают драйвер для определенного аппаратного обеспечения иным способом, доступным для специалистов в данной области техники, ознакомившихся с описанием предпочтительного варианта осуществления. Различные способы осуществления на целевом компьютере эмуляции формата команд, архитектура которых разработана для исполнения на другом компьютере, а также серийно выпускаемые средства программного обеспечения, используемые в этих целях, описаны в ряде патентов, раскрывающих программные и аппаратные средства эмуляции, включая, без ограничения, патенты US 5551013, US 6009261, US 5574873, US 6308255, US 6463532 и US 5790825.
В предпочтительном варианте осуществления существующие форматы несуперскалярной команды со значительным предварительным смещением образуют адрес хранения операнда, который состоит из базового регистра и 12-разрядного смещения без знака или базового регистра, индексного регистра и 12-разрядного смещения без знака, а новые форматы команды со значительным смещением образуют адрес хранения операнда, который состоит из базового регистра и 20-разрядного смещения со знаком или базового регистра, индексного регистра и 20-разрядного смещения со знаком.
В данном предпочтительном варианте осуществления изобретения форматы для несуперскалярной команды, предшествующие формату с длинным смещением, образуют адрес хранения операнда путем суммирования базового регистра и 12-разрядного смещения без знака либо базового регистра, индексного регистра и 12-разрядного смещения без знака, а новые форматы команды с длинным смещением образуют адрес хранения операнда путем суммирования базового регистра и 20-разрядного смещения со знаком либо базового регистра, индексного регистра и 20-разрядного смещения со знаком.
Как показано на фиг.30, такие команды выполняются аппаратно процессором или путем эмуляции такого набора команд программным обеспечением, установленным на компьютере с другим собственным, или "родным", набором команд.
На фиг.30 позицией 501 обозначена память (запоминающее устройство) компьютера, в котором хранятся команды и данные. В таком компьютере изначально хранятся описанные в настоящем изобретении команды с длинным смещением. Позицией 502 обозначен механизм выборки команд из памяти компьютера, который также может предусматривать помещение выбранных команд в местное буферное запоминающее устройство. Затем команды в исходном виде поступают в дешифратор 503 команд, который определяет тип выбранной команды. Позицией 504 обозначен механизм выполнения команд. Он может предусматривать загрузку данных в регистр из памяти 501, сохранение данных из регистра в памяти или выполнение какой-либо арифметической или логической операции. Тип такой выполняемой операции предварительно определен дешифратором команд. В данном случае выполняются описанные в настоящем изобретении команды с длинным смещением. Если команды с длинным смещением выполняются в "родной" вычислительной системе, процесс завершается, как это описано выше. Если же набор команд со структурой, содержащей команды с длинным смещением, эмулирует другой компьютер, описанный процесс будет реализован в хост-компьютере 505 программно. В этом случае упомянутые выше механизмы, как правило, будут реализованы в виде одной или нескольких стандартных системных подпрограмм в рамках эмулирующего программного обеспечения. В обоих случаях происходят вызов, дешифрация (декодирование) и выполнение команды.
В частности, команды этой архитектуры можно использовать с компьютерной архитектурой, в которой применяются существующие форматы команд с 12-разрядным смещением без знака, используемым для формирования адреса хранения операнда, а также с архитектурой, в которой применяются дополнительные форматы команд, обеспечивающие дополнительные разряды смещения, предпочтительно на 20 разрядов, представляющего собой увеличенное смещение со знаком, используемое для формирования адреса хранения операнда. Команды такой архитектуры представляют собой компьютерное программное обеспечение, которое хранится в запоминающем устройстве компьютера и служит для генерации кода, исходящего из процессора, в котором используется компьютерное программное обеспечение, и содержит код команды, используемый компилятором или эмулятором/интерпретатором, хранящимся в запоминающем устройстве 501 компьютера, при этом первая часть кода команды содержит код операции, задающий операцию, которую нужно выполнить, а вторая часть назначает операнды для участия в ее выполнении. При использовании команд с длинным смещением становится возможным напрямую обращаться к дополнительным адресам.
Как показано на фиг.30, такие команды выполняются аппаратно процессором или - путем эмуляции указанного набора команд - программным обеспечением, работающим на компьютере с другим собственным набором команд.
В соответствии с компьютерной архитектурой, используемой в предпочтительном варианте изобретения, поле смещения состоит из двух частей, при этом наименьшая значимая часть состоит из 12 разрядов и обозначается DL, DL1 - для операнда 1 или DL2 - для операнда 2, а наибольшая значимая часть состоит из 8 разрядов и обозначается DH, DH1 - для операнда 1 или DH2 - для операнда 2.
Кроме того, в предпочтительной компьютерной архитектуре формат команды таков, что коду операции соответствуют разряды с 0 по 7 и с 40 по 47, целевому регистру, называемому R1, соответствуют разряды с 8 по 11, индексному регистру, называемому Х2, соответствуют разряды с 12 по 15, базовому регистру, называемому В2, соответствуют разряды с 16 по 19, первой части состоящего из двух частей смещения, которая называется DL2, соответствуют разряды с 20 по 31, а второй части, которая называется DH2, соответствуют разряды с 32 по 39.
Эта компьютерная архитектура имеет такой формат команды, что коду операции соответствуют разряды с 0 по 7 и с 40 по 47, целевому регистру, называемому R1, соответствуют разряды с 8 по 11, исходному регистру, называемому R3, соответствуют разряды с 12 по 15, базовому регистру, называемому В2, соответствуют разряды с 16 по 19, первой части состоящего из двух частей смещения, которая называется DL2, соответствуют разряды с 20 по 31, а второй части, которая называется DH2, соответствуют разряды с 32 по 39.
Кроме того, предложенные для архитектуры компьютера команды с длинным смещением имеют такой формат, что коду операции соответствуют разряды с 0 по 7 и с 40 по 47, целевому регистру, называемому R1, соответствуют разряды с 8 по 11, значению маски, называемому М3, соответствуют разряды с 12 по 15, базовому регистру, называемому В2, соответствуют разряды с 16 по 19, первой части состоящего из двух частей смещения, которая называется DL2, соответствуют разряды с 20 по 31, а второй части, которая называется DH2, соответствуют разряды с 32 по 39.
Как показано выше, предпочтительная архитектура компьютера с длинным смещением имеет такой формат команды, что коду операции соответствуют разряды с 0 по 7 и с 40 по 47, непосредственному значению, называемому 12, соответствуют разряды с 8 по 15, базовому регистру, называемому В2, соответствуют разряды с 16 по 19, первой части состоящего из двух частей смещения, которая называется DL1, соответствуют разряды с 20 по 31, а второй части, которая называется DH1, соответствуют разряды с 32 по 39.
Предложенная в изобретении архитектура компьютера с длинным смещением отличается эффективностью при работе с новыми создаваемыми командами, в которых применен только формат команды с новым 20-разрядным смещением без знака.
В особом варианте осуществления предложенной в изобретении архитектуры компьютера используются существующие команды, форматы которых имеют только 12-разрядное смещение без знака и которые в новых форматах определены как имеющие существующее 12-разрядное значение смещения без знака, если 8 старших разрядов в поле смещения DH являются нулевыми разрядами, или как имеющие 20-разрядное смещение со знаком, если 8 старших разрядов в поле смещения DH не являются нулевыми разрядами.
Еще одной формой осуществления изобретения является устройство для шифрования и расшифрования памяти вычислительной среды, содержащее средства задания единицы памяти, подлежащей шифрованию или расшифрованию, посредством команды микропроцессора и средства шифрования или расшифрования этой единицы памяти.
Claims (15)
1. Способ шифрования и расшифрования памяти вычислительной среды, заключающийся в том, что посредством команды микропроцессора задают единицу памяти, подлежащую шифрованию или расшифрованию, и зашифровывают или расшифровывают эту единицу памяти, причем указанная команда соотнесена с полем, определяющим значение кода функции, и еще одним полем, определяющим значение бита-модификатора, а выполняющий команду процессор определяет, подлежит ли выполнению операция шифрования или операция расшифрования, на основании значения кода функции и значения бита-модификатора, и
одно дополнительное значение кода функции соответствует операции запроса, вызывающей сохранение в блоке параметров слова состояния, имеющего множество разрядов, причем, если определенный разряд слова состояния имеет первое двоичное значение, то этот разряд соответствует значению кода функции, соответствующему установленной функции, а если определенный разряд слова состояния имеет второе двоичное значение, то этот разряд соответствует значению кода функции, соответствующему не установленной функции.
2. Способ по п.1, в котором указанная команда при ее выполнении процессором сохраняет результат шифрования или расшифрования в первом операнде.
3. Способ по п.2, в котором команда включает в себя поле кода операции, поле R2, указывающее один из нескольких регистров общего назначения процессора, содержащий адрес второго операнда, представляющий собой единицу памяти, заданную посредством этой команды, поле R1, указывающее второй регистр общего назначения процессора, содержащий адрес первого операнда и задающий длину второго операнда, причем значение кода функции получают из заданного регистра из числа регистров общего назначения процессора, в заданном регистре из числа регистров общего назначения содержится адрес хранящегося в памяти блока параметров, содержащего пользовательский криптографический ключ, используемый для шифрования и расшифрования по алгоритму шифрования данных (DEA), часть первого операнда включает в себя по меньшей мере часть второго операнда.
4. Способ по п.3, в котором заданный регистр общего назначения, содержащий значение кода функции, является регистром 0 общего назначения, а заданный регистр общего назначения, содержащий адрес хранящегося в памяти блока параметров, является регистром 1 общего назначения.
5. Способ по п.1, в котором, если значение кода функции соответствует операции запроса, то указанная команда содержит поле кода операции и никаких иных полей.
6. Способ по п.1, в котором значение кода функции соответствует любой из следующих операций: операция запроса шифрования сообщения (КМ), криптографическая операция с 64-разрядным ключом по алгоритму DEA (KM-DEA), криптографическая операция с двумя 64-разрядными ключами по алгоритму Triple DEA (KM-TDEA) и криптографическая операция с тремя 64-разрядными ключами по алгоритму Triple TDEA (KM-TDEA).
7. Способ по п.1, в котором указанная команда имеет формат, соответствующий собственной архитектуре команды процессора.
8. Машиночитаемый носитель данных, содержащий компьютерный программный продукт, обеспечивающий при его выполнении в вычислительной системе осуществление способа по любому из пп.1-7.
9. Устройство для шифрования и расшифрования памяти вычислительной среды, содержащее средства задания единицы памяти, подлежащей шифрованию или расшифрованию, посредством команды микропроцессора и средства шифрования или расшифрования этой единицы памяти, причем указанная команда соотнесена с полем, определяющим значение кода функции, и еще одним полем, определяющим значение бита-модификатора, а выполняющий команду процессор определяет, подлежит ли выполнению операция шифрования или операция расшифрования, на основании значения кода функции и значения бита-модификатора, и одно дополнительное значение кода функции соответствует операции запроса, вызывающей сохранение в блоке параметров слова состояния, имеющего множество разрядов, причем если определенный разряд слова состояния имеет первое двоичное значение, то этот разряд соответствует значению кода функции, соответствующему установленной функции, а если определенный разряд слова состояния имеет второе двоичное значение, то этот разряд соответствует значению кода функции, соответствующему не установленной функции.
10. Устройство по п.9, в котором указанная команда при ее выполнении процессором сохраняет результат шифрования или расшифрования в первом операнде.
11. Устройство по п.10, в котором команда включает в себя поле кода операции, поле R2, указывающее один из нескольких регистров общего назначения процессора, содержащий адрес второго операнда, представляющий собой единицу памяти, заданную посредством этой команды, поле R1, указывающее второй регистр общего назначения процессора, содержащий адрес первого операнда и задающий длину второго операнда, причем значение кода функции получают из заданного регистра из числа регистров общего назначения процессора, в заданном регистре из числа регистров общего назначения содержится адрес хранящегося в памяти блока параметров, содержащего пользовательский криптографический ключ, используемый для шифрования и расшифрования по алгоритму шифрования данных (DEA), часть первого операнда включает в себя по меньшей мере часть второго операнда.
12. Устройство по п.11, в котором заданный регистр общего назначения, содержащий значение кода функции, является регистром 0 общего назначения, а заданный регистр общего назначения, содержащий адрес хранящегося в памяти блока параметров, является регистром 1 общего назначения.
13. Устройство по п.9, в котором, если значение кода функции соответствует операции запроса, то указанная команда содержит поле кода операции и никаких иных полей.
14. Устройство по п.9, в котором значение кода функции соответствует любой из следующих операций: операция запроса шифрования сообщения (КМ), криптографическая операция с 64-разрядным ключом по алгоритму DEA (KM-DEA), криптографическая операция с двумя 64-разрядными ключами по алгоритму Triple DEA (KM-TDEA) и криптографическая операция с тремя 64-разрядными ключами по алгоритму Triple TDEA (KM-TDEA).
15. Устройство по п.9, в котором указанная команда имеет формат, соответствующий собственной архитектуре команды процессора.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/435,916 | 2003-05-12 | ||
US10/435,916 US7257718B2 (en) | 2003-05-12 | 2003-05-12 | Cipher message assist instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2005121915A RU2005121915A (ru) | 2007-06-20 |
RU2334268C2 true RU2334268C2 (ru) | 2008-09-20 |
Family
ID=33417043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2005121915/09A RU2334268C2 (ru) | 2003-05-12 | 2004-05-04 | Команды для поддержки обработки шифрованного сообщения |
Country Status (15)
Country | Link |
---|---|
US (6) | US7257718B2 (ru) |
EP (1) | EP1623294B1 (ru) |
KR (1) | KR100745430B1 (ru) |
CN (1) | CN100394348C (ru) |
AT (1) | ATE355552T1 (ru) |
AU (1) | AU2004236861A1 (ru) |
CA (1) | CA2523241C (ru) |
DE (1) | DE602004005025T2 (ru) |
ES (1) | ES2279366T3 (ru) |
GB (1) | GB2413878B (ru) |
IL (1) | IL171906A (ru) |
PL (1) | PL1623294T3 (ru) |
RU (1) | RU2334268C2 (ru) |
TW (1) | TWI279692B (ru) |
WO (1) | WO2004099950A1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2571364C2 (ru) * | 2010-06-24 | 2015-12-20 | Интернэшнл Бизнес Машинз Корпорейшн | Способ и компьютерная система для скрывания выбранных установленных функций многофункциональной команды |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7802108B1 (en) * | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
KR100604828B1 (ko) * | 2004-01-09 | 2006-07-28 | 삼성전자주식회사 | 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치 |
KR101123742B1 (ko) * | 2005-12-23 | 2012-03-16 | 삼성전자주식회사 | 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치 |
US20100169637A1 (en) * | 2008-06-28 | 2010-07-01 | Visisoft, Llc | Palette for real-time display of previously accessed documents |
US8654970B2 (en) * | 2009-03-31 | 2014-02-18 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm |
US9317286B2 (en) * | 2009-03-31 | 2016-04-19 | Oracle America, Inc. | Apparatus and method for implementing instruction support for the camellia cipher algorithm |
US20100246815A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the kasumi cipher algorithm |
US8832464B2 (en) * | 2009-03-31 | 2014-09-09 | Oracle America, Inc. | Processor and method for implementing instruction support for hash algorithms |
US20100250965A1 (en) * | 2009-03-31 | 2010-09-30 | Olson Christopher H | Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm |
US8356185B2 (en) * | 2009-10-08 | 2013-01-15 | Oracle America, Inc. | Apparatus and method for local operand bypassing for cryptographic instructions |
US10521231B2 (en) | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
US9179303B2 (en) * | 2010-11-17 | 2015-11-03 | Qualcomm Incorporated | Methods and apparatus for transmitting and receiving secure and non-secure data |
US8737604B2 (en) | 2011-05-09 | 2014-05-27 | Advanced Micro Devices, Inc. | Processor with architecture implementing the advanced encryption standard |
US8873750B2 (en) | 2013-03-14 | 2014-10-28 | International Business Machines Corporation | Instruction for performing a pseudorandom number generate operation |
US9201629B2 (en) | 2013-03-14 | 2015-12-01 | International Business Machines Corporation | Instruction for performing a pseudorandom number seed operation |
US9411600B2 (en) * | 2013-12-08 | 2016-08-09 | Intel Corporation | Instructions and logic to provide memory access key protection functionality |
US20150234750A1 (en) * | 2014-02-18 | 2015-08-20 | Aspeed Technology Inc. | Method and apparatus for addressing a memory containing different bit-length field variables |
US10642987B2 (en) * | 2017-01-19 | 2020-05-05 | Ebay Inc. | Cryptography based fraud tracking |
US11121856B2 (en) * | 2018-06-15 | 2021-09-14 | Intel Corporation | Unified AES-SMS4—Camellia symmetric key block cipher acceleration |
US11706039B2 (en) | 2020-12-26 | 2023-07-18 | Intel Corporation | ISA accessible physical unclonable function |
US12022013B2 (en) * | 2020-12-26 | 2024-06-25 | Intel Corporation | ISA accessible physical unclonable function |
US11700135B2 (en) * | 2020-12-26 | 2023-07-11 | Intel Corporation | ISA accessible physical unclonable function |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2458331A1 (de) | 1973-12-13 | 1975-06-19 | Honeywell Inf Systems | Datenverarbeitungssystem zur adressierung eines in einem sekundaerspeicher abgelegten datensatzes |
JPS56121138A (en) | 1980-02-28 | 1981-09-22 | Nippon Telegr & Teleph Corp <Ntt> | Buffer memory controlling system |
JPS56149645A (en) * | 1980-04-21 | 1981-11-19 | Nec Corp | Instruction word deciphering device of information processor |
US4578530A (en) * | 1981-06-26 | 1986-03-25 | Visa U.S.A., Inc. | End-to-end encryption system and method of operation |
DE68926200T2 (de) | 1988-08-11 | 1996-10-17 | Ibm | Geheime Datenübertragung mittels Steuervektoren |
US5058164A (en) * | 1990-05-03 | 1991-10-15 | National Semiconductor Corp. | Encryption of streams of addressed information to be used for program code protection |
JP3086507B2 (ja) | 1991-10-02 | 2000-09-11 | 旭化成工業株式会社 | 熱可塑性合成樹脂成形品 |
US5666411A (en) | 1994-01-13 | 1997-09-09 | Mccarty; Johnnie C. | System for computer software protection |
US5673319A (en) | 1995-02-06 | 1997-09-30 | International Business Machines Corporation | Block cipher mode of operation for secure, length-preserving encryption |
US5765030A (en) * | 1996-07-19 | 1998-06-09 | Symantec Corp | Processor emulator module having a variable pre-fetch queue size for program execution |
US5787302A (en) | 1996-05-15 | 1998-07-28 | Philips Electronic North America Corporation | Software for producing instructions in a compressed format for a VLIW processor |
US20010025337A1 (en) | 1996-06-10 | 2001-09-27 | Frank Worrell | Microprocessor including a mode detector for setting compression mode |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
JPH11249873A (ja) | 1998-03-02 | 1999-09-17 | Mitsubishi Electric Corp | ドライバ機能の動的管理方式及び動的管理方法 |
EP1084548B1 (en) * | 1998-06-03 | 2008-12-17 | Cryptography Research Inc. | Secure modular exponentiation with leak minimization for smartcards and other cryptosystems |
ATE548819T1 (de) * | 1998-06-03 | 2012-03-15 | Cryptography Res Inc | Symmetrisches kryptographisches rechenverfahren und vorrichtung zur verlustminimierung bei chipkarten und anderen verschlüsselungssystemen |
KR20020026370A (ko) | 1999-08-09 | 2002-04-09 | 러셀 비. 밀러 | 메시지 인증 코드를 발생시키기 위한 방법 및 장치 |
US6675298B1 (en) * | 1999-08-18 | 2004-01-06 | Sun Microsystems, Inc. | Execution of instructions using op code lengths longer than standard op code lengths to encode data |
US7278016B1 (en) * | 1999-10-26 | 2007-10-02 | International Business Machines Corporation | Encryption/decryption of stored data using non-accessible, unique encryption key |
US6542981B1 (en) * | 1999-12-28 | 2003-04-01 | Intel Corporation | Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode |
CA2305078A1 (en) * | 2000-04-12 | 2001-10-12 | Cloakware Corporation | Tamper resistant software - mass data encoding |
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
JP2002353960A (ja) * | 2001-05-30 | 2002-12-06 | Fujitsu Ltd | コード実行装置およびコード配布方法 |
US7266703B2 (en) * | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
US20030002666A1 (en) | 2001-06-13 | 2003-01-02 | Takahashi Richard J. | Method and apparatus for creating a message digest using a parallel, one-way hash algorithm |
US7360076B2 (en) * | 2001-06-13 | 2008-04-15 | Itt Manufacturing Enterprises, Inc. | Security association data cache and structure |
US20030028765A1 (en) | 2001-07-31 | 2003-02-06 | Cromer Daryl Carvis | Protecting information on a computer readable medium |
JP2003051819A (ja) * | 2001-08-08 | 2003-02-21 | Toshiba Corp | マイクロプロセッサ |
US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
US6765030B2 (en) | 2002-03-22 | 2004-07-20 | The University Of North Carolina At Chapel Hill | Methods of forming polymeric structures using carbon dioxide and polymeric structures formed therapy |
US7254696B2 (en) * | 2002-12-12 | 2007-08-07 | Alacritech, Inc. | Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests |
CN100539289C (zh) | 2006-05-23 | 2009-09-09 | 索尼株式会社 | 电池 |
-
2003
- 2003-05-12 US US10/435,916 patent/US7257718B2/en active Active
-
2004
- 2004-05-04 GB GB0516236A patent/GB2413878B/en not_active Expired - Lifetime
- 2004-05-04 DE DE602004005025T patent/DE602004005025T2/de not_active Expired - Lifetime
- 2004-05-04 CN CNB2004800078072A patent/CN100394348C/zh not_active Expired - Lifetime
- 2004-05-04 RU RU2005121915/09A patent/RU2334268C2/ru active
- 2004-05-04 AU AU2004236861A patent/AU2004236861A1/en not_active Abandoned
- 2004-05-04 CA CA2523241A patent/CA2523241C/en not_active Expired - Lifetime
- 2004-05-04 AT AT04731048T patent/ATE355552T1/de active
- 2004-05-04 ES ES04731048T patent/ES2279366T3/es not_active Expired - Lifetime
- 2004-05-04 PL PL04731048T patent/PL1623294T3/pl unknown
- 2004-05-04 KR KR1020057018960A patent/KR100745430B1/ko active IP Right Grant
- 2004-05-04 WO PCT/GB2004/001928 patent/WO2004099950A1/en active IP Right Grant
- 2004-05-04 EP EP04731048A patent/EP1623294B1/en not_active Expired - Lifetime
- 2004-05-06 TW TW093112742A patent/TWI279692B/zh not_active IP Right Cessation
-
2005
- 2005-11-10 IL IL171906A patent/IL171906A/en unknown
-
2007
- 2007-03-28 US US11/692,382 patent/US8103860B2/en active Active
-
2009
- 2009-02-27 US US12/394,579 patent/US7720220B2/en not_active Expired - Lifetime
-
2011
- 2011-12-13 US US13/324,396 patent/US8261048B2/en not_active Expired - Fee Related
-
2012
- 2012-06-04 US US13/487,929 patent/US8661231B2/en not_active Expired - Lifetime
-
2013
- 2013-12-31 US US14/144,830 patent/US9424055B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2571364C2 (ru) * | 2010-06-24 | 2015-12-20 | Интернэшнл Бизнес Машинз Корпорейшн | Способ и компьютерная система для скрывания выбранных установленных функций многофункциональной команды |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2334268C2 (ru) | Команды для поддержки обработки шифрованного сообщения | |
RU2344467C2 (ru) | Обработка команд генерации дайджестов сообщений | |
US7770024B2 (en) | Security message authentication instruction | |
EP1684167A2 (en) | Method of processing signed displacement computer instruction |