ES2278317T3 - Instruccion para calcular un codigo de autenticacion de mensaje de seguridad. - Google Patents
Instruccion para calcular un codigo de autenticacion de mensaje de seguridad. Download PDFInfo
- Publication number
- ES2278317T3 ES2278317T3 ES04730603T ES04730603T ES2278317T3 ES 2278317 T3 ES2278317 T3 ES 2278317T3 ES 04730603 T ES04730603 T ES 04730603T ES 04730603 T ES04730603 T ES 04730603T ES 2278317 T3 ES2278317 T3 ES 2278317T3
- Authority
- ES
- Spain
- Prior art keywords
- instruction
- code
- bit
- function
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims 2
- 238000004590 computer program Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 32
- 238000006073 displacement reaction Methods 0.000 description 11
- 238000009434 installation Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 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 description 2
- 239000012190 activator Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/3001—Arithmetic 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/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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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
-
- 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
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Multi Processors (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Percussion Or Vibration Massage (AREA)
- Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
- Massaging Devices (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Control Of Ac Motors In General (AREA)
- Communication Control (AREA)
Abstract
Un método de calcular un código de autenticación de mensaje de datos en almacenamiento de un entorno informático, comprendiendo el citado método: especificar, por medio de una instrucción de microprocesador, una unidad de datos para la cual se tiene que calcular el código de autenticación; y calcular, por medio de la instrucción, un código de autenticación para la unidad de datos; en el que la instrucción está asociada con un campo que identifica un valor de código de función, y un procesador que ejecuta la instrucción reconoce qué técnica de cifrado se va a utilizar para calcular el código de autenticación basándose en el valor del código de función; que se caracteriza porque un valor de código de función adicional se corresponde a una operación de consulta que hace que una palabra de estado se almacene en un bloque de parámetros, teniendo la palabra de estado una pluralidad de bits, en el que cuando un bit de la palabra de estado tiene un primer valor binario, entonces ese bit correspondea un valor de código de función que corresponde a una función instalada, y cuando un bit de la palabra de estado tiene un segundo valor binario, entonces ese bit corresponde a un valor de código de función que corresponde a una función no instalada.
Description
Instrucción para calcular un código de
autenticación de mensaje de seguridad.
Esta invención se refiere a una arquitectura de
un sistema de ordenador, y particularmente a nuevas instrucciones
que incrementan la arquitectura z de IBM y pueden ser emuladas por
otras arquitecturas.
Antes de la presente invención, IBM ha creado
por medio del trabajo de muchos ingenieros de gran talento,
empezando con máquinas conocidas como el sistema 360 de IBM en la
década de los 60 hasta la actualidad, una arquitectura especial que,
debido a su naturaleza esencial para un sistema informático, llegó a
conocerse como "ordenador central" o mainframe, cuyos
principios de operación establecen la arquitectura de la máquina
describiendo las instrucciones que pueden ser ejecutadas con la
implantación práctica en el "ordenador central" de las
instrucciones que han sido inventadas por los inventores de IBM y
adoptadas, debido a su contribución significativa en la mejora del
estado de la máquina informática representada por "el ordenador
central", como contribuciones significativas por la inclusión de
los Principios de Operación de IBM establecidos a lo largo de los
años. La Primera Edición de los Principios de Operación de la
Arquitectura z que se publicó en diciembre del 2000 se ha
convertido en la referencia publicada estándar como
SA22-7832-00.
Se ha determinado que nuevas instrucciones
adicionales ayudarían en la técnica y se podrían incluir en la
máquina de Arquitectura z y también podrían ser emuladas por otros
en máquinas más simples, como se describe en la presente memoria
descriptiva.
Una instrucción conocida para calcular un código
de autenticación de mensaje y que tiene un código de función
asociado se conoce por la publicación FP 0354774, publicada el 14 de
febrero de 1990.
La presente invención proporciona un método como
se reivindica en la reivindicación 1.
Las características de las realizaciones
preferidas de la invención serán evidentes a aquellos especialistas
en la técnica a partir de la descripción detallada que sigue tomada
en conjunto con los dibujos que se acompañan, en los cuales:
la figura 1 es una ilustración de la instrucción
Calcular Código de Autenticación de Mensaje (KMAC) en el formato de
instrucción RRE;
la figura 2 es una tabla que muestra los códigos
de función de la instrucción KMAC de la figura 1;
la figura 3 es una ilustración de la asignación
de registro general para la instrucción KMAC de la figura 1;
la figura 4 ilustra el símbolo utilizado para O
Exclusiva por Ajuste
la figura 5 ilustra un símbolo del Cifrado y
Descifrado DEA;
la figura 6 ilustra el formato del bloque de
parámetros de la Consulta KMAC;
la figura 7 ilustra el formato del bloque de
parámetros de KMAC-DEA;
la figura 8 ilustra la operación de
KMAC-DEA;
la figura 9 ilustra el formato del bloque de
parámetros de KMAC-TDEA-128;
la figura 10 ilustra la operación de
KMAC-TDA-128;
la figura 11 ilustra el formato del bloque de
parámetros de KMAC-TDA-192;
la figura 12 ilustra la operación de
KMAC-TDA-192;
la figura 13 es una tabla que muestra la
prioridad de ejecución de KMAC;
la figura 14 ilustra el coprocesador
criptográfico del invento; y
la figura 15 muestra la realización preferida
generalizada de un almacenamiento de memoria de ordenador que
contiene instrucciones de acuerdo con la realización preferida y
datos, así como el mecanismo para buscar, descodificar y ejecutar
estas instrucciones, ya sea en un sistema de ordenador que utiliza
esas instrucciones de arquitectura o como se utiliza en la emulación
de las instrucciones de arquitectura actuales.
La instrucción Calcular Código de Autenticación
de Mensaje (KMAC) se explicará en primer lugar, y a continuación un
sistema de ordenador preferido y, como alternativa, un sistema de
ordenador para emular un sistema de ordenador que tiene una
arquitectura diferente para ejecutar la instrucción.
Calcular Código de Autenticación de
Mensaje
(KMAC)
La figura 1 es una ilustración de la instrucción
Calcular Código de Autenticación de Mensaje (KMAC) en el formato de
instrucción RRE.
Se ejecuta una función especificada por el
código de función en el registro general 0. Los bits
16-23 de la instrucción y el campo R1 se
ignoran.
Las posiciones de bits 57-63 del
registro general 0 contienen el código de función. La figura 2
muestra los códigos de función con signos. Todos los otros códigos
de función no están con signos. El bit 56 del registro general 0
debe ser cero; en caso contrario, se reconoce una excepción de
especificación. Todos los otros bits del registro general 0 se
ignoran.
El registro general 1 contiene la dirección
lógica del bit más a la izquierda del bloque de parámetros en el
almacenamiento. En el modo de direccionamiento de 24 bits, los
contenidos de las posiciones de bits 40-63 del
registro general 1 constituyen la dirección, y los contenidos de las
posiciones de bits 0-39 se ignoran. En el modo de
direccionamiento de 31 bits, los contenidos de las posiciones de
bits 33-63 del registro general 1 constituyen la
dirección, y los contenidos de las posiciones de bits
0-32 se ignoran.
En el modo de direccionamiento de 64 bits, los
contenidos de las posiciones de bits 0-63 del
registro general 1 constituyen la dirección.
Los códigos de función de Calcular Código de
Autenticación de Mensaje se muestran en la figura 2.
Todos los otros códigos de función no están con
signos. La función de consulta proporciona los medios para indicar
la disponibilidad de las otras funciones. Los contenidos de los
registros generales R2 y R2 + 1 se ignoran.
Para todas las otras funciones, el segundo
operador se procesa como está especificado por el código de función
que utiliza un valor de encadenamiento inicial en el bloque de
parámetros y el resultado reemplaza al valor de encadenamiento. La
operación también utiliza una clave criptográfica en el bloque de
parámetros. La operación continúa hasta que se alcanza el final de
la posición del segundo operador o se haya procesado un número de
bytes determinado por la CPU, lo que se produzca en primer lugar. El
resultado se indica en el código de condición.
El campo R2 designa una pareja
par-impar de registros generales y debe designar un
registro de número par; en caso contrario, se reconoce una excepción
a la especificación.
La posición del byte más a la izquierda del
segundo operador es especificada por los contenidos del registro
general R2. El número de bytes en la posición del segundo operador
es especificado en el registro general R2 + 1.
Como parte de la operación, la dirección en el
registro general R2 es incrementada en el número de bytes procesados
desde el segundo operador, y la longitud en el registro general R2 +
1 es disminuida en el mismo número. La formación y actualización de
la dirección y de la longitud depende del modo de
direccionamiento.
En el modo de direccionamiento de 24 bits, los
contenidos de las posiciones de bits 40-63 del
registro general R2 constituyen la dirección del segundo operador, y
se ignoran; los bits 40-63 de la dirección
actualizada reemplazan los bits correspondientes en el registro
general R_, son ignoradas ejecuciones de la posición de bit 40 de la
dirección actualizada, y los contenidos de las posiciones de bits
32-39 del registro general R_ se establecen en cero.
En el modo de direccionamiento de 31 bits, los contenidos de las
posiciones de bits 33-63 del registro general R_
constituyen la dirección del segundo operador, y los contenidos de
las posiciones de bits 0-32 son ignorados; los bits
33-63 de la dirección actualizada reemplazan los
bits correspondientes en el registro general R_, son ignoradas
ejecuciones de bit 33 de la dirección actualizada, y los contenidos
de la posición de bit 32 del registro general R se establecen en
cero. En el modo de direccionamiento de 64 bits, los contenidos de
las posiciones de bits 0-63 del registro general R_
constituyen la dirección del segundo operador; los bits
0-63 de la dirección actualizada reemplazan los
contenidos del registro general R_ y se ignoran ejecuciones de la
posición de bit 0.
En ambos modos de direccionamiento de 24 bits y
de 31 bits, los contenidos de las posiciones de bits
32-63 del registro general R2 + 1 forman un número
binario sin signo de 32 bits que específica el número de bytes en el
segundo operador; y el valor actualizado reemplaza los contenidos de
las posiciones de bits 32-63 del registro general R2
+ 1. En el modo de direccionamiento de 64 bits, los contenidos de
las posiciones de bits 0-63 del registro general R2
+ 1 forman un número binario sin signo de 64 bits que especifica el
número de bytes en el segundo operador; y el valor actualizado
reemplaza los contenidos del registro general R2 + 1.
En el modo de direccionamiento de 24 bits o de
31 bits, los contenidos de las posiciones de bits
0-31 de los registros generales R2 y R2 + 1 siempre
permanecen sin modificación.
La figura 3 muestra los contenidos de los
registros generales que se acaban de describir.
\newpage
En el modo de registro de acceso, los registros
de acceso 1 y R2 especifican los espacios de dirección que contienen
el bloque de parámetros y el segundo operador, respectivamente. El
resultado se obtiene como si el procesamiento se iniciase en el
extremo izquierdo del segundo operador y continuase a la derecha,
bloque por bloque. La operación finaliza cuando todos los bytes de
fuente en el segundo operador han sido procesados (denominado
finalización normal), o cuando ha sido tratado un número de bloques
determinado por la CP que sea menor que la longitud del segundo
operador (denominado finalización parcial). El número de bloques
determinado por la CPU depende del modelo, y puede ser un número
diferente cada que se ejecute la instrucción. El número de bloques
determinado por la CPU no es normalmente cero. En ciertas
situaciones no usuales, este número puede ser cero, y el código de
condición 3 se puede esta-
blecer sin progreso. Sin embargo, la CPU protege contra la recurrencia sin fin de este caso en el que no hay progreso.
blecer sin progreso. Sin embargo, la CPU protege contra la recurrencia sin fin de este caso en el que no hay progreso.
Cuando el campo de valor de encadenamiento
solapa cualquier porción del segundo operador, el resultado en el
campo de valor de encadenamiento es impredecible.
La finalización normal se produce cuando se ha
procesado el número de bytes en el segundo operador especificado en
el registro general R + 1.
Cuando la operación finaliza debido a la
finalización normal, se establece el código de condición 0 y el
valor resultante en R2 + 1 es cero. Cuando la operación finaliza
debido a la finalización parcial, se establece el código de
condición 3 y el valor resultante en R2 + 1 es distinto de cero.
Cuando en la longitud del segundo operador es
inicialmente cero, el segundo operador y el bloque de parámetros no
son accedidos, los registro generales R2 y R2 + 1 no se modifican y
se establece el código de condición 0.
Como se observa por otras CPUs y programas de
canales, las referencias al bloque de parámetros y a los operadores
de almacenamiento pueden ser referencias de acceso múltiple, los
accesos a estas posiciones de almacenamiento no son necesariamente
concurrentes en bloque, y la secuencia de estos accesos o
referencias es indefinida.
Se puede informar de excepciones de acceso de
una porción mayor del segundo operador que la que se procesa en una
única ejecución de la instrucción; sin embargo, las excepciones de
acceso no están reconocidas en posiciones más allá de la longitud
del segundo operador ni es posiciones de más de 4k bytes más allá de
la posición actual que está siendo procesada.
Los símbolos de las figuras 4 y 5 se utilizan en
la descripción que sigue de las funciones de Calcular Código de
Autenticación de Mensaje. En funciones de algoritmo de cifrado de
datos (DEA), se ignora el bit de paridad de la clave DEA en cada
byte de la clave DEA, y la operación procede normalmente, con
independencia de la paridad de la clave DEA de la clave.
Una descripción adicional del algoritmo de
cifrado de datos se puede encontrar en la publicación
"Algoritmos de Cifrado de Datos", ANSI - X3.92.1981,
Norma Nacional Americana de Sistemas de Información.
Las posiciones de los operadores y las
direcciones utilizadas por las instrucciones son como se muestra en
la figura 3. El bloque de parámetros utilizado para la función de
Consulta KMAC tiene el formato que se muestra en la figura 6.
Se almacena una palabra de estatus de 128 bits
en el bloque de parámetros. Los bits 0-127 de este
campo se corresponde a los códigos de función 0-127,
respectivamente, de la instrucción KMAC. Cuando un bit es uno, se
instala la función correspondiente; en caso contrario, la función no
se instala.
El código de condición 0 se establece cuando
finaliza la ejecución de la función de Consulta KMAC; el código de
condición 3 no es aplicable a esta función.
Las posiciones de los operadores y las
direcciones utilizadas por la instrucción son como se muestra en la
figura 3.
El bloque se parámetros utilizado para la
función KMAC-DEA tiene el formato que se muestra en
la figura 7.
El código de autenticación del mensaje para los
bloques de mensaje de 8 bytes (M1, M2, ..., Mn) en el operador 2 se
calcula utilizando el algoritmo DEA con la clave criptográfica de 64
bit y el valor de encadenamiento de 64 bit en el bloque de
parámetros.
El código de autenticación de mensajes, también
denominado valor de encadenamiento de salida (OCV) se almacena en el
campo de valor de encadenamiento del bloque de parámetros. La
operación KMAC-DEA se muestra en la figura 8.
Las posiciones de los operadores y las
direcciones utilizadas por las instrucciones son como se muestra en
la figura 3.
El bloque de parámetros utilizados para la
función KMAC-TDEA-128 tiene el
formato que se muestra en la figura 9.
El código de autenticación de mensajes de los
bloques de mensajes de 8 bytes (M1, M2, ..., Mn) en el operador 2
se calcula utilizando el algoritmo TDEA con las dos claves
criptográficas de 64 bits y el valor de encadenamiento de 64 bits en
el bloque de parámetros.
El código de autenticación de mensajes, también
denominado valor de encadenamiento de salida (OCV) se almacena en el
campo de valor de encadenamiento del bloque de parámetros. La
operación KMAC-TDA-128 se muestra en
la figura 10.
Las posiciones de los operadores y las
direcciones utilizadas por la instrucción son como se muestra en la
figura 3.
El bloque de parámetros utilizado para la
función KMAC-TDA-192 tiene el
formato que se muestra en la figura 11.
El código de autenticación de mensajes de los
bloques de mensajes de 8 bytes (M1, M2, ..., Mn) en el operador 2 se
calcula utilizando el algoritmo TDEA con las 3 claves criptográficas
de 64 bits y el valor de encadenamiento de 64 bits en el bloque de
parámetros.
El código de autenticación de mensajes, también
denominado valor de encadenamiento de salida (OCV) se almacena en el
campo de valor de encadenamiento del bloque de parámetros. La
operación KMAC-TDA-192 se muestra en
la figura 12.
Se reconoce una excepción de especificación y no
se toma ninguna otra acción si se produce cualquiera de lo
siguiente:
- 1.
- El bit 56 del registro general 0 es distinto de cero.
- 2.
- Los bits 57-63 del registro general 0 especifican un código de función no asignada o no instalada.
- 3.
- El campo R_ designa un registro de número impar o registro general 0.
- 4.
- La longitud del segundo operador no es un múltiplo del tamaño del bloque de datos de la función designada (véanse las figuras 7-54 en las páginas 7-92 para determinar el tamaño de bloques de datos de las funciones de Calcular Código de Autenticación de Mensajes).
\vskip1.000000\baselineskip
- 0
- Finalización normal
- 1
- - -
- 2
- - -
- 3
- Finalización parcial
\vskip1.000000\baselineskip
- \sqbullet
- Acceso (buscar, operador 2, clave criptográfica; buscar y almacenar, valor de encadenamiento)
- \sqbullet
- Operación (si la asistencia de seguridad del mensaje no está instalada)
- \sqbullet
- Especificación
- 1.
- El bit 56 del registro general 0 está reservado para extensión futura y debe establecerse en cero.
- 2.
- Cuando se establece el código de condición 3, la dirección del segundo operador y la longitud en los registros generales R2 y R2 + 1, respectivamente, y el valor de encadenamiento en el bloque de parámetros normalmente se actualizan de manera que el programa pueda simplemente ramificarse hacia atrás a la instrucción para continuar la operación. En situaciones inusuales, la CPU protege contra las recurrencias sin fin para el caso de que no se produzca progreso. Por lo tanto, el programa puede ramificarse hacia atrás con seguridad a la instrucción cuando se establece el código de condición 3 sin que se produzca ninguna exposición a un bucle sin fin.
- 3.
- Si la longitud del segundo operador inicialmente es distinta de cero y se establece el código de condición 0, los registros se actualizan de la misma manera que en el código de condición 3; el valor de encadenamiento en este caso es tal que pueden ser procesados operadores adicionales como si fuesen parte de la misma cadena.
- 4.
- Antes de procesar la primera parte de un mensaje, el programa debe establecer los valores iniciales del campo de valor de encadenamiento. Para cumplir con ANSI X9.9 ó X9.19, el valor de encadenamiento inicial debe establecerse en todos los ceros binarios.
La realización preferida proporciona un
coprocesador criptográfico que se puede utilizar con las
instrucciones descritas en la presente memoria descriptiva y para
ejecutar mensajes cifrados y ayudar en una variedad de tareas de
mensajes de encadenamiento que se pueden utilizar para uso
encadenado y criptográfico con las instrucciones apropiadas.
La figura 14 ilustra el coprocesador
criptográfico del invento que está directamente unido a un trayecto
de datos común a todas las unidades de ejecución interna en el
microprocesador de propósito general, que tiene múltiples tuberías
de ejecución. El bus interno (1) del microprocesador, que es común a
todas las otras unidades de ejecución, está unido a la unidad (2) de
control criptográfico, y la unidad de control vigila el bus respecto
a las instrucciones del procesador que debe ejecutar.
La unidad de control criptográfico proporciona
un coprocesador criptográfico directamente unido a un trayecto de
datos común a todas las unidades de ejecución internas de la unidad
de proceso central en un microprocesador de propósito general que
proporciona el equipo físico disponible (E_{0}, ..., E_{n}, o de
una combinación de los mismos en la realización preferida que tiene
múltiples tuberías de ejecución) para la unidad de proceso central.
Cuando se encuentra una instrucción criptográfica en el registro de
orden (3), la unidad de control (2) invoca el algoritmo apropiado en
el equipo disponible. Los datos de operador se suministran por el
mismo bus de microprocesador interno por medio de un registro FIFO
(4) de entrada. Cuando se completa una operación, se establece una
bandera en un registro de estado (6) y los resultados están
disponibles para ser leídos desde el registro FIFO de salida
(5).
La realización preferida ilustrada de la
presente invención está diseñada para que sea extensible para
incluir tantos motores de equipo físico como sean requeridos por una
ejecución práctica particular, dependiendo de los objetivos de
eficacia del sistema. Los trayectos de datos a los registros (7) de
entrada y salida son comunes entre todos los motores. La realización
preferida de las funciones criptográficas de la invención se
ejecutan en la práctica en un equipo físico de unidad de ejecución
en la CPU y esta ejecución práctica permite una latencia inferior
para llamar y ejecutar las operaciones de encriptación e incrementa
la eficiencia.
Esta latencia disminuida mejora en gran medida
la capacidad de los procesadores de propósito general en sistemas
que frecuentemente realizan muchas operaciones de cifrado, en
particular cuando solamente se implican pequeñas cantidades de
datos. Esto permite una ejecución práctica que puede acelerar
significativamente los procesos implicados en la realización de
transacciones seguras en línea. Los métodos más comunes para
asegurar transacciones en línea incluyen un conjunto de tres
algoritmos. El primer algoritmo solamente se utiliza una vez en una
sesión, y puede estar implantado en equipo físico (hardware) o en
programación lógica (software), mientras que las otras operaciones
se invocan con cada transacción de la sesión, y el coste en latencia
de llamar a equipo físico externo, así como el coste en tiempo para
ejecutar el algoritmo en software, se eliminan con esta
invención.
En la figura 15 se muestra conceptualmente cómo
ejecutar en la práctica lo que se tiene en una realización preferida
ejecutada en la práctica en un ordenador principal que tiene el
microprocesador que se ha descrito más arriba, que puede ser
utilizado con efectividad, como se ha aprobado experimentalmente en
IBM, en una ejecución práctica comercial del formato de instrucción
de arquitectura de ordenador de instalación de desplazamiento largo,
cuyas instrucciones son utilizadas por los programadores,
normalmente en la actualidad los programadores "C". Estos
formatos de instrucciones almacenados en el medio de almacenamiento
pueden ser ejecutados en una arquitectura z del Servidor IBM, o
alternativamente en máquinas que ejecutan otras arquitecturas.
Pueden ser emulados en los servidores de ordenador principal de IBM
existentes y futuros y en otras máquinas de IBM (por ejemplo, los
Servidores de las Series p y los Servidores de las Series x). Pueden
ser ejecutados en una máquina que funciona bajo Linux en una gran
variedad de máquinas que utilizan equipos fabricados por IBM, Intel,
AMD, Sun Microsystems y otros. Además de la ejecución de ese equipo
bajo la arquitectura Z, también se puede utilizar Linux, así como
máquinas que utilizan emulación por Hércules, UMX, FXI o Soluciones
de Plataforma, en las que la ejecución se realiza generalmente en un
modo de emulación. En modo de emulación, las instrucciones
específicas que están siendo emuladas se descodifican, y una
subrutina construida para ejecutar en la práctica las instrucciones
individuales, como en una subrutina "C" o activador, o algún
otro método para proporcionar un activador para un equipo físico
especifico, que está dentro del conocimiento de los expertos en la
técnica después de comprender la descripción de la realización
preferida. Varias patentes de emulación de software y de hardware,
incluyendo, sin estar limitados a, los documentos US 5551013, US
6009261, US 5574873, US 6308255, US 6463582 y US 5790825 ilustran la
variedad de formas conocidas para conseguir la emulación de un
formato de instrucción con arquitectura para una máquina diferente,
para una máquina objetivo disponible para aquellos especialistas en
la técnica, así como para aquellas técnicas de software comerciales
utilizadas por los que se han referenciado con anterioridad.
En la arquitectura de ordenador preferida los
formatos de instrucciones de desplazamiento previamente largo
existentes para una instrucción no superescalar forman la dirección
de almacenamiento de operador sumando el registro de base y el
desplazamiento sin signo de 12 bits o el registro de base, el
registro de índice y el desplazamiento sin signo de 12 bits y los
nuevos formatos de instrucción de desplazamiento largo forman la
dirección de almacenamiento de operador sumando el registro de base
y el desplazamiento con signo de 20 bits o el registro de base, el
registro de índice y el desplazamiento con signo de 20 bits.
Como se ilustra por la figura 15, estas
instrucciones son ejecutadas en el hardware por un procesador o por
la emulación del citado conjunto de instrucciones por el software
que lo ejecuta en un ordenador que tiene un conjunto de
instrucciones nativas diferentes.
En la figura 15, el número 501 muestra un
almacenamiento de memoria de ordenador que contiene instrucciones y
datos. Las instrucciones de desplazamiento largo descritas en esta
arquitectura de ordenador estarían almacenadas inicialmente en este
ordenador. El número 502 muestra un mecanismo para buscar
instrucciones en una memoria de ordenador y también puede contener
almacenamiento local de estas instrucciones que ha buscado. A
continuación, las instrucciones en bruto se transfieren a un
descodificador de instrucciones, número 503, en donde se determina
que tipo de instrucción se ha buscado. El número 504 muestra un
mecanismo para ejecutar las instrucciones. Esto puede incluir cargar
los datos en un registro desde la memoria, número 501, almacenar los
datos de vuelta a la memoria desde un registro, o ejecutar algún
tipo de operación aritmética o lógica. Este tipo exacto de operación
que va a ser ejecutado ha sido determinado previamente por el
descodificador de instrucciones. Las instrucciones de desplazamiento
largo descritas en esta arquitectura de ordenador serían ejecutadas
aquí. Si las instrucciones de desplazamiento largo están siendo
ejecutadas nativamente en un sistema de ordenador, entonces este
diagrama se completa como se ha descrito más arriba. Sin embargo, si
una arquitectura de conjunto de instrucciones, que contiene
instrucciones de desplazamiento largo, está siendo emulada en otro
ordenador, el proceso anterior debería ser ejecutado en la práctica
en software en un ordenador principal, número 505. En este caso, los
mecanismos que se han establecido más arriba serían típicamente
ejecutados en la práctica como una o más subrutinas de software en
este software de emulador. En ambos casos, se busca una instrucción,
se descodifica y se ejecuta.
Más en particular, estas instrucciones de
arquitectura se pueden utilizar con una arquitectura de ordenador
con formatos de instrucciones existentes con un desplazamiento sin
signo de 12 bits utilizado para formar la dirección de
almacenamiento de operador y también uno que tenga formatos de
instrucción adicionales que proporcionen bits de desplazamiento
adicionales, preferiblemente 20 bits, que comprenden un
desplazamiento con signo extendido utilizado para formar la
dirección de almacenamiento de operador. Estas instrucciones de
arquitectura de ordenador comprenden software de ordenador,
almacenado en un medio de almacenamiento de ordenador, para producir
el código que funciona en el procesador utilizando el software del
ordenador, y comprende los códigos de instrucciones que van a ser
utilizados con un compilador o emulador / intérprete que es
almacenado en un medio 501 de almacenamiento del ordenador, y en el
que la primera parte del código de instrucciones comprende un código
de operación que especifica la operación que se va a ejecutar y una
segunda parte que designa los operador para esa participación. Las
instrucciones de desplazamiento largo permiten que direcciones
adicionales sean directamente direccionadas con la utilización de la
instrucción de instalación de desplazamiento largo.
Como se ilustra en la figura 15, estas
instrucciones son ejecutadas en equipo por un procesador o por
emulación del citado conjunto de instrucciones por el software que
es ejecutado en un ordenador que tiene un conjunto de instrucciones
nativas diferentes.
De acuerdo con la arquitectura de ordenador
preferida, el campo de desplazamiento está definido en dos partes,
siendo la parte menos significativa 12 bits denominados DL, DL1 para
el operador 1 ó DL2 para el operador 2, y siendo la parte más
significativa 8 bits denominados DH, DH1 para el operador 1 ó DH2
para el operador 2.
Además, la arquitectura de ordenador preferida
tiene un formato de instrucción tal que el opcódigo (código de
operador) se encuentra en las posiciones de bits 0 a 7 y 40 a 47, un
registro objetivo denominado R1 en las posiciones de bits 8 a 11, un
registro de índice denominado X2 en las posiciones de bits 12 a 15,
un registro base denominado B2 en las posiciones de bits 16 a 19, un
desplazamiento compuesto por dos partes, siendo la primera parte
denominada DL2 en las posiciones de bits 20 a 31 y siendo la segunda
parte denominada DH en las posiciones de bits 32 a 39.
Esta arquitectura de ordenador tiene un formato
de instrucciones tal que el opcódigo se encuentra en las posiciones
de bits 0 a 7 y 40 a 47, un registro de objetivo denominado R1 en
las posiciones de bits 8 a 11, un registro de fuente denominado R3
en las posiciones de bits 12 a 15, un registro de base denominado B2
en las posiciones de bits 16 a 19, un desplazamiento compuesto por
dos partes, siendo la primera parte denominada DL2 en las posiciones
de bits 20 a 31 y siendo la segunda parte denominada DH2 en las
posiciones de bits 32 a 39.
Además, las instrucciones de arquitectura de
ordenador de la presente invención que tienen una instalación de
desplazamiento largo tienen un formato de instrucciones tal que el
opcódigo se encuentra en las posiciones de bits 0 a 7, y 40 a 47, un
registro de objetivo denominado R1 en las posiciones de bits 8 a 11,
un valor de máscara denominado M3 en las posiciones de bits 12 a 15,
un registro base denominado B2 en las posiciones de bits 16 a 19, y
un desplazamiento compuesto por dos partes, siendo la primera parte
denominada DL2 en las posiciones de bits 20 a 31 y siendo la segunda
parte denominada DH2 en las posiciones de bits 32 a 39.
Como se ilustra, la arquitectura de ordenador
preferida del invento, con su instalación de desplazamiento largo,
tiene un formato de instrucciones tal que el opcódigo se encuentra
en las posiciones de bits 0 a 7 y 40 a 47, un valor inmediato
denominado I2 en las posiciones de bits 8 a15, un registro de base
denominado B2 en las posiciones de bit 16 a 19, un desplazamiento
compuesto por dos partes, siendo la primera parte denominada DL1 en
las posiciones de bits 20 a 31 y siendo la segunda parte denominada
DH1 en las posiciones de bits 32 a 39.
La arquitectura de ordenador del invento, de
instalación de desplazamiento largo opera efectivamente cuando
utiliza nuevas instrucciones que son creadas, que solamente utilizan
el formato de instrucciones con el nuevo desplazamiento sin signo de
20 bits.
Un ejemplo específico de la arquitectura del
ordenador de la presente invención utiliza instrucciones existentes
que tienen los formatos de instrucciones que tienen solamente un
desplazamiento sin signo de 12 bit y ahora se definen para que se
encuentren en los nuevos formatos de instrucciones para que tengan,
ya sea el valor de desplazamiento sin signo de 12 bits existente
cuando los 8 bits de orden elevado del desplazamiento, el campo DH,
sean todos cero, o un valor con signo de 20 bits cuando los 8 bits
de orden elevado del desplazamiento, campo DH, sean distintos de
cero.
Claims (11)
1. Un método de calcular un código de
autenticación de mensaje de datos en almacenamiento de un entorno
informático, comprendiendo el citado método:
especificar, por medio de una instrucción de
microprocesador, una unidad de datos para la cual se tiene que
calcular el código de autenticación; y
calcular, por medio de la instrucción, un código
de autenticación para la unidad de datos;
en el que la instrucción está asociada con un
campo que identifica un valor de código de función, y un procesador
que ejecuta la instrucción reconoce qué técnica de cifrado se va a
utilizar para calcular el código de autenticación basándose en el
valor del código de función;
que se caracteriza porque
un valor de código de función adicional se
corresponde a una operación de consulta que hace que una palabra de
estado se almacene en un bloque de parámetros, teniendo la palabra
de estado una pluralidad de bits, en el que cuando un bit de la
palabra de estado tiene un primer valor binario, entonces ese bit
corresponde a un valor de código de función que corresponde a una
función instalada, y cuando un bit de la palabra de estado tiene un
segundo valor binario, entonces ese bit corresponde a un valor de
código de función que corresponde a una función no instalada.
2. El método de la reivindicación 1, en el que
la instrucción, cuando es ejecutada por el procesador, almacena el
código de autenticación calculado en un primer operador.
3. El método de la reivindicación 1, en el que
las técnicas de cifrado que corresponden a los valores de código de
función incluyen una operación criptográfica con clave DEA de 64
bits, una operación criptográfica con dos claves Triple DEA de 64
bit, y una operación criptográfica con tres claves Triple DEA de 64
bits.
4. El método de la reivindicación 1, en el que
el cálculo del código de autenticación de mensaje comprende
proporcionar una clave criptográfica asociada a la unidad de
datos.
5. El método de la reivindicación 1, en el que
la instrucción es ejecutada por una unidad de proceso que emula una
arquitectura de la instrucción, siendo diferente la citada
arquitectura de la instrucción a una arquitectura de la unidad de
proceso.
6. El método de la reivindicación 1, en el que
la especificación comprende especificar una pluralidad de unidades
de datos y el cálculo del código de autenticación comprende calcular
el código de autenticación para la pluralidad de unidades de
datos.
7. El método de la reivindicación 6, en el que
calcular el código de autenticación comprende una operación de
encadenamiento para calcular el código de autenticación de la
pluralidad de unidades de datos.
8. El método de la reivindicación 1, en el que
la instrucción se ejecuta en la práctica en al menos uno de entre el
equipo físico (hardware) y la programación lógica (software).
9. El método de la reivindicación 1, en el que
la especificación comprende proporcionar información de posición de
una estructura de datos asociada a la unidad de datos.
10. Un aparato que comprende medios adaptados
para realizar todos los pasos del método de acuerdo con cualquiera
de las reivindicaciones de método precedentes.
11. Un programa de ordenador que comprende
instrucciones para ejecutar todos los pasos del método de acuerdo
con cualquiera de las reivindicaciones de método precedentes, cuando
el citado programa de ordenador se ejecuta en un sistema de
ordenador.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US435910 | 2003-05-12 | ||
US10/435,910 US7356710B2 (en) | 2003-05-12 | 2003-05-12 | Security message authentication control instruction |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2278317T3 true ES2278317T3 (es) | 2007-08-01 |
Family
ID=33417040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES04730603T Expired - Lifetime ES2278317T3 (es) | 2003-05-12 | 2004-04-30 | Instruccion para calcular un codigo de autenticacion de mensaje de seguridad. |
Country Status (15)
Country | Link |
---|---|
US (2) | US7356710B2 (es) |
EP (2) | EP1650648B1 (es) |
KR (2) | KR20060103282A (es) |
CN (2) | CN100561423C (es) |
AT (2) | ATE373264T1 (es) |
AU (1) | AU2004236860B2 (es) |
CA (1) | CA2522995C (es) |
DE (2) | DE602004004079T2 (es) |
ES (1) | ES2278317T3 (es) |
GB (2) | GB2413877B (es) |
IL (1) | IL171907A0 (es) |
PL (1) | PL1588255T3 (es) |
RU (2) | RU2327204C2 (es) |
TW (2) | TWI354929B (es) |
WO (1) | WO2004099976A2 (es) |
Families Citing this family (18)
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 |
US7284100B2 (en) * | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US8155313B2 (en) * | 2005-02-03 | 2012-04-10 | Yottamark, Inc. | Systems and methods for employing duo codes for product authentication |
US7614546B2 (en) | 2005-02-03 | 2009-11-10 | Yottamark, Inc. | Method and system for deterring product counterfeiting, diversion and piracy |
US8300806B2 (en) * | 2005-02-03 | 2012-10-30 | Yottamark, Inc. | Duo codes for product authentication |
US8649512B2 (en) * | 2005-02-03 | 2014-02-11 | Yottamark, Inc. | Duo codes for product authentication |
KR101123742B1 (ko) * | 2005-12-23 | 2012-03-16 | 삼성전자주식회사 | 사용자 인터페이스와 소프트웨어 간의 신뢰 경로 설정 방법및 장치 |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
US8210430B1 (en) | 2011-02-24 | 2012-07-03 | Yottamark, Inc. | Methods for assigning traceability information to and retrieving traceability information from a store shelf |
MX2010002554A (es) | 2007-09-07 | 2010-04-01 | Yottamark Inc | Metodos y sistemas de atribucion de informacion de cosecha con identificadores unicos. |
US8342393B2 (en) * | 2007-09-07 | 2013-01-01 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
US8196827B1 (en) | 2009-05-22 | 2012-06-12 | Yottamark, Inc. | Case labeling for field-packed produce |
US8887990B2 (en) | 2007-09-07 | 2014-11-18 | Yottamark, Inc. | Attributing harvest information with unique identifiers |
US8428773B1 (en) | 2008-02-12 | 2013-04-23 | Yottamark, Inc. | Systems and methods of associating individual packages with harvest crates |
US8240564B2 (en) * | 2008-07-11 | 2012-08-14 | Yottamark, Inc. | Mobile table for implementing clamshell-to-case association |
US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
Family Cites Families (23)
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 |
US4432053A (en) * | 1981-06-29 | 1984-02-14 | Burroughs Corporation | Address generating apparatus and method |
JPS6110411A (ja) * | 1984-06-19 | 1986-01-17 | Daicel Chem Ind Ltd | 樹脂組成物 |
DE3686984T2 (de) * | 1985-06-28 | 1993-03-11 | Hewlett Packard Co | Verfahren und mittel zum laden und speichern von daten in einem rechner mit beschraenktem befehlssatz. |
US4829424A (en) * | 1985-06-28 | 1989-05-09 | Hewlett-Packard Company | Maximal length immediates with fixed sign position |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
EP0354774B1 (en) | 1988-08-11 | 1996-04-10 | International Business Machines Corporation | Data cryptography using control vectors |
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 |
JPH11249873A (ja) | 1998-03-02 | 1999-09-17 | Mitsubishi Electric Corp | ドライバ機能の動的管理方式及び動的管理方法 |
KR20020026370A (ko) * | 1999-08-09 | 2002-04-09 | 러셀 비. 밀러 | 메시지 인증 코드를 발생시키기 위한 방법 및 장치 |
US6542981B1 (en) * | 1999-12-28 | 2003-04-01 | Intel Corporation | Microcode upgrade and special function support by executing RISC instruction to invoke resident microcode |
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 |
US20030028765A1 (en) * | 2001-07-31 | 2003-02-06 | Cromer Daryl Carvis | Protecting information on a computer readable medium |
US6996725B2 (en) * | 2001-08-16 | 2006-02-07 | Dallas Semiconductor Corporation | Encryption-based security protection for processors |
-
2003
- 2003-05-12 US US10/435,910 patent/US7356710B2/en active Active
-
2004
- 2004-04-30 AU AU2004236860A patent/AU2004236860B2/en not_active Expired
- 2004-04-30 RU RU2005138549/09A patent/RU2327204C2/ru active
- 2004-04-30 DE DE602004004079T patent/DE602004004079T2/de not_active Expired - Lifetime
- 2004-04-30 KR KR1020067015918A patent/KR20060103282A/ko not_active Application Discontinuation
- 2004-04-30 DE DE602004008933T patent/DE602004008933D1/de not_active Withdrawn - After Issue
- 2004-04-30 GB GB0516205A patent/GB2413877B/en not_active Expired - Lifetime
- 2004-04-30 CA CA2522995A patent/CA2522995C/en not_active Expired - Lifetime
- 2004-04-30 AT AT05108499T patent/ATE373264T1/de not_active IP Right Cessation
- 2004-04-30 GB GB0518900A patent/GB2414840B/en not_active Expired - Fee Related
- 2004-04-30 CN CNB2006101538089A patent/CN100561423C/zh not_active Expired - Lifetime
- 2004-04-30 KR KR1020057019453A patent/KR100745889B1/ko active IP Right Grant
- 2004-04-30 AT AT04730603T patent/ATE350701T1/de active
- 2004-04-30 EP EP05108499A patent/EP1650648B1/en not_active Expired - Lifetime
- 2004-04-30 CN CNB200480012737XA patent/CN100363887C/zh not_active Expired - Lifetime
- 2004-04-30 PL PL04730603T patent/PL1588255T3/pl unknown
- 2004-04-30 EP EP04730603A patent/EP1588255B1/en not_active Expired - Lifetime
- 2004-04-30 WO PCT/GB2004/001925 patent/WO2004099976A2/en active IP Right Grant
- 2004-04-30 ES ES04730603T patent/ES2278317T3/es not_active Expired - Lifetime
- 2004-05-07 TW TW093113009A patent/TWI354929B/zh active
- 2004-05-07 TW TW095132760A patent/TWI332158B/zh active
-
2005
- 2005-11-10 IL IL171907A patent/IL171907A0/en active IP Right Grant
-
2007
- 2007-06-26 RU RU2007123775/09A patent/RU2007123775A/ru not_active Application Discontinuation
-
2008
- 2008-02-12 US US12/029,514 patent/US7770024B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2278317T3 (es) | Instruccion para calcular un codigo de autenticacion de mensaje de seguridad. | |
US8261048B2 (en) | Optional function multi-function instruction in an emulated computing environment | |
ES2279365T3 (es) | Tratamiento de instrucciones de resumen de mensaje. | |
EP1684167A2 (en) | Method of processing signed displacement computer instruction |