ES2270628T3 - Metodo y dispositivo para procesar criptograficamente datos. - Google Patents
Metodo y dispositivo para procesar criptograficamente datos. Download PDFInfo
- Publication number
- ES2270628T3 ES2270628T3 ES99963594T ES99963594T ES2270628T3 ES 2270628 T3 ES2270628 T3 ES 2270628T3 ES 99963594 T ES99963594 T ES 99963594T ES 99963594 T ES99963594 T ES 99963594T ES 2270628 T3 ES2270628 T3 ES 2270628T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- auxiliary
- key
- complementary
- stage
- 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
Classifications
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
- Control By Computers (AREA)
Abstract
Método para procesar criptográficamente datos usando un circuito o un procesador, que comprende la alimentación, hacia un proceso criptográfico (P), de valores, que incluyen los datos (X) y una clave (K), y la ejecución del proceso (P) para formar datos de salida procesados criptográficamente (Y), caracterizado porque se alimentan hacia el proceso (P), unos valores auxiliares (K*, A0, ..., A0+1, B0, ..., Bn) para enmascarar los valores, incluyendo la clave (K), usados en el proceso (P), y porque se compensa, mediante un proceso auxiliar, la influencia de los valores auxiliares sobre los datos de salida (Y).
Description
Método y dispositivo para procesar
criptográficamente datos.
La presente invención se refiere a un método
para procesar criptográficamente datos, que comprende la
alimentación, hacia un proceso criptográfico, de valores, a saber,
los datos y una clave, y la ejecución del proceso para formar datos
procesados criptográficamente. En general dicho método es
conocido.
Para procesar criptográficamente datos, en la
práctica frecuentemente se aplican procesos en general conocidos.
Entre los ejemplos de dichos procesos (algoritmos) criptográficos se
encuentran el DES y el RSA [DES = Norma de Cifrado de Datos y RSA =
Rivest, Shamir y Adleman], los cuales se describen, por ejemplo, en
el libro "Applied Cryptography" de B. Schneier (2ª edición),
Nueva York, 1996.
Dichos procesos se publican debido a que se
consideró que, en el caso de longitudes de clave suficientemente
grandes, resultaría imposible recuperar, basándose en los datos
procesados, los datos originales y/o la clave, incluso si se
conociera el proceso criptográfico.
No obstante, los Algoritmos criptográficos se
pueden atacar -el objetivo es siempre encontrar la clave de cifrado
que se está usando- de diferentes maneras:
(1) Ataques matemáticos como el criptoanálisis
diferencial y lineal;
(2) Ataques orientados al hardware, denominados
"Ataques por Canal Lateral", es decir, ataques basados en el
análisis del consumo de potencia o el análisis de la temporización
I/O.
El documento
US-A-5745577 da a conocer un método
para la planificación avanzada de claves correspondiente a una clave
secreta. Su finalidad es ofrecer una protección contra dichos
ataques matemáticos (criptoanálisis diferencial y lineal)
corrigiendo el algoritmo de cifrado. La corrección del algoritmo
provocará un cambio de su salida y por lo tanto el método dado a
conocer no presenta ninguna mejora contra dichos "Ataques por
Canal Lateral".
La presente invención pretende mejorar la
protección de un dispositivo criptográfico contra los "Ataques por
Canal Lateral". En resumen, dicha mejora se consigue enmascarando
los datos y/o la clave por medio de la generación de una entrada
adicional, auxiliar (datos o clave) y de la compensación de su
influencia en la salida añadiendo, al proceso de cifrado
"principal", un proceso auxiliar (de compensación). Mediante
dichas medidas de enmascaramiento resultará mucho más difícil
obtener el valor de datos o una clave a partir del comportamiento
del consumo de potencia del dispositivo criptográfico (ver página 1,
líneas 32 a 34). No obstante, dicho enmascaramiento se produce de
tal manera que el resultado del proceso en conjunto permanece
invariable: con la misma entrada y la misma clave el algoritmo
corregido da como resultado la misma salida invariable.
De este modo, la invención presenta un método
del tipo al que se hace referencia en el preámbulo según la
invención el cual está caracterizado porque la alimentación, hacia
el proceso, de valores auxiliares, al mismo tiempo que por la
compensación, por medio de un proceso auxiliar, de la influencia de
los valores auxiliares en los datos de salida, para enmascarar los
valores usados en el proceso.
Con el enmascaramiento de los datos y/o
la(s) clave(s) resulta considerablemente más difícil
obtener dichos valores basándose en el comportamiento del proceso.
El resultado del proceso, es decir, la recogida de datos procesados,
en el caso de una elección adecuada de los valores auxiliares puede
resultar invariable, es decir, idéntico al resultado del proceso si
hacia el mismo no se han alimentado valores auxiliares. En relación
con esto, se entiende que la expresión "valor auxiliar"
significa un valor (datos o clave) el cual se alimenta hacia el
proceso como complemento para los datos y la clave correspondientes.
Por esta razón, la invención se basa en la conclusión de que la
obtención de los valores usados en un proceso criptográfico resulta
considerablemente más difícil si dichos valores se enmascaran usando
dichos valores auxiliares y dicho proceso auxiliar.
La invención se basa parcialmente en la
conclusión adicional de que el uso de valores auxiliares no influye
necesariamente en el resultado del proceso.
En una primera forma de realización de la
invención, un valor auxiliar comprende una clave complementaria la
cual se alimenta hacia un proceso complementario para formar la
clave.
Mediante la aplicación de una combinación de un
proceso conocido y un proceso complementario, se forma un proceso
criptográfico nuevo, desconocido por sí mismo, incluso si el proceso
complementario también es conocido por sí mismo.
\newpage
Mediante la obtención de la clave usada para el
proceso conocido (clave primaria) a partir de una clave
complementaria (clave secundaria) usando un proceso complementario,
se llega al resultado de que a la combinación de procesos se le
ofrece, no la clave (primaria) del proceso conocido, sino la clave
complementaria (secundaria). En otras palabras, externamente se usa
la clave complementaria (secundaria), y no la clave real (primaria)
del propio proceso. De este modo, se consigue que resulte imposible
la obtención de la clave a partir de los datos originales y los
datos procesados. Adicionalmente, de este modo se consigue que
resulte imposible la obtención de la clave a partir de los datos
originales y los datos procesados. Adicionalmente, se consigue que
la obtención de la clave complementaria resulte mucho más difícil,
ya que no se conoce la combinación del proceso original y el
proceso
complementario.
complementario.
Por esta razón, dicha forma de realización de la
invención se basa, entre otros aspectos, en la conclusión de que la
existencia conocida de un proceso criptográfico no es deseable,
contrariamente a lo que se consideraba hasta el momento. Dicha forma
de realización se basa también en la conclusión adicional de que los
ataques que se construyen sobre el conocimiento del proceso resultan
considerablemente más difíciles si el proceso es desconocido.
El proceso complementario comprende
preferentemente un proceso criptográfico. Esto hace que la obtención
de la clave complementaria resulte más difícil. No obstante,
básicamente, como proceso complementario, se puede aplicar por
ejemplo una codificación sencilla. En el caso de un proceso
criptográfico, se aplica preferentemente una clave auxiliar.
El proceso complementario es de forma ventajosa
un proceso invertible. Esto posibilita la aplicación del método
según la invención en equipos existentes con modificaciones mínimas.
Si, por ejemplo, un primer dispositivo emite una clave
(complementaria) la cual se aplica en un segundo dispositivo según
la invención, en ese caso en el primer dispositivo se puede usar el
inverso del proceso complementario para obtener la clave
complementaria a partir de la clave original. En otras palabras,
aunque internamente tanto en el primer como en el segundo
dispositivos se usa la clave original (primaria), entre los
dispositivos se intercambia la clave complementaria (secundaria). No
obstante, la interceptación de la clave complementaria no da como
resultado el conocimiento de la clave original.
Puede resultar ventajoso el hecho de que la
ejecución del proceso complementario tenga lugar exclusivamente si
los datos presentan unas propiedades predeterminadas. De esta
manera, el proceso criptográfico se puede llevar a cabo únicamente
para datos específicos, seleccionados, mientras que queda bloqueado
para la totalidad del resto de datos. De esta manera, se alcanza una
protección complementaria.
Se proporciona una seguridad óptima si el
proceso y el proceso complementario se construyen cada uno de ellos
con varias etapas y se llevan a cabo de forma alternada etapas del
proceso y el proceso complementario. Como consecuencia, las
propiedades del proceso conocido quedan ocultas adicionalmente, como
consecuencia de lo cual se complica todavía más la obtención de las
claves.
En una segunda forma de realización de la
invención, el proceso comprende varias etapas, cada una de las
cuales dispone de una operación criptográfica para procesar datos
del lado derecho obtenidos a partir de los datos y de una operación
combinatoria para combinar, con los datos del lado izquierdo
obtenidos a partir de los datos, los datos procesados del lado
derecho con vistas a formar datos del lado izquierdo modificados, en
los cuales los datos del lado derecho, antes de la primera etapa, se
combinan con un valor auxiliar primario y los datos del lado
izquierdo se combinan con un valor auxiliar adicional. Como
consecuencia, los datos usados en las etapas y transferidos entre
las etapas quedan enmascarados.
Para posibilitar que los valores auxiliares
primario y adicional no se manifiesten ellos mismos en el resultado
final del proceso, los datos del lado derecho se combinan, de forma
preferente inmediatamente después de la última etapa, con otro valor
auxiliar primario, y los datos del lado izquierdo modificados se
combinan con otro valor auxiliar adicional.
Para conseguir que el resultado de las
operaciones no se vea influido por los valores auxiliares primarios,
el método según la invención se lleva a cabo preferentemente de tal
manera que los datos del lado derecho, en cada etapa y antes de la
operación, se combinan con el valor auxiliar primario de dicha
etapa.
Se consigue una protección adicional si los
datos procesados del lado derecho, después del procesado, se
combinan con un valor auxiliar secundario de dicha etapa.
El valor auxiliar secundario de una etapa se
forma de manera ventajosa a partir de la combinación del valor
auxiliar primario de la etapa anterior y el valor auxiliar primario
de la siguiente etapa. Como consecuencia, resulta posible compensar
el valor auxiliar repetidamente en la siguiente etapa, como
consecuencia de lo cual dicho valor auxiliar no se manifestará el
mismo en el resultado final del proceso.
Es posible llevar a cabo el método según la
invención de tal manera que todos los valores auxiliares primarios
sean iguales. Como consecuencia, es posible una realización práctica
muy sencilla. No obstante, el uso de varios valores auxiliares, los
cuales son preferentemente números aleatorios y se generan
nuevamente cada vez que se lleva a cabo el proceso, ofrece una mayor
seguridad criptográfica.
Puede obtenerse otra de las simplificaciones de
dicha forma de realización si los valores auxiliares primarios y/o
los valores auxiliares secundarios se han combinado repetidamente de
antemano con la operación en cuestión. Es decir, la combinación con
valores auxiliares se procesa en la operación en cuestión (por
ejemplo, una sustitución) de tal manera que el resultado de la
operación en cuestión es igual al correspondiente a la operación
original más una o dos operaciones combinatorias con valores
auxiliares. Incluyendo de antemano en la operación las operaciones
combinatorias, es posible una realización práctica más sencilla y
rápida.
Dichas operaciones combinatorias se llevan a
cabo preferentemente usando una operación XOR [XOR = OR eXclusiva].
No obstante, básicamente también son posibles otras operaciones
combinatorias, tales como una suma binaria.
La invención proporciona además un circuito para
llevar a cabo un método para procesar criptográficamente datos.
Adicionalmente, la invención suministra una tarjeta de pago y un
terminal de pago provisto de dicho circuito.
A continuación se explicará adicionalmente la
invención basándose en las formas de realización ilustrativas
mostradas en las figuras.
La Fig. 1 muestra esquemáticamente un proceso
criptográfico según la técnica anterior.
La Fig. 2 muestra esquemáticamente un primer
proceso criptográfico según una primera forma de realización de la
invención.
La Fig. 3 muestra esquemáticamente un segundo
proceso criptográfico según una primera forma de realización de la
invención.
La Fig. 4 muestra esquemáticamente una forma
según la cual se pueden llevar a cabo los procesos de las Figs. 1 y
2.
La Fig. 5 muestra esquemáticamente un proceso
criptográfico que presenta varias etapas según la técnica
anterior.
La Fig. 6 muestra esquemáticamente un primer
proceso criptográfico de acuerdo con una segunda forma de
realización de la invención.
La Fig. 7 muestra esquemáticamente un segundo
proceso criptográfico de acuerdo con una segunda forma de
realización de la invención.
La Fig. 8 muestra esquemáticamente un tercer
proceso criptográfico de acuerdo con una segunda forma de
realización de la invención.
La Fig. 9 muestra esquemáticamente un circuito
en el cual se aplica la invención.
La Fig. 10 muestra esquemáticamente un sistema
de pago en el cual se aplica la invención.
En la Fig. 1 se muestra esquemáticamente un
proceso (criptográfico) P según la técnica anterior. Hacia el
proceso P se alimentan datos de entrada X y una clave K. Sobre la
base de la clave K, el proceso P transforma los datos de entrada X
en datos de salida procesados (criptográficamente) Y: Y =
P_{x}(X). El proceso P puede ser un proceso criptográfico
conocido, tal como el DES (Norma de Cifrado de Datos), el triple
DES, o el RSA (Rivest, Shamir y Adleman).
Si los datos de entrada X y los datos de salida
Y son conocidos, básicamente es posible obtener la clave K usada. En
el caso de una clave de la longitud suficiente (es decir, un número
suficiente de bits), hasta el momento se consideraba imposible
obtener dicha clave, incluso si el proceso P era conocido. Imposible
en este caso significa que se admite que en teoría es posible, por
ejemplo, probando todas las claves posibles, recuperar la clave
usada, pero dicha operación requiere un tiempo de cálculo
increíblemente largo. Por esta razón, dicho "ataque por fuerza
bruta" representa apenas una amenaza para la seguridad
criptográfica.
No obstante, los ataques descubiertos
recientemente hacen uso del conocimiento del proceso, como
consecuencia de lo cual el número de claves posibles se puede
reducir drásticamente. Por esta razón, la obtención de la clave K
usada y/o los datos de entrada X a partir de los datos de salida Y
resulta posible en unos tiempos de cálculo
aceptables.
aceptables.
En la Fig. 2 se muestran esquemáticamente los
fundamentos de la invención, cuyo objetivo es conseguir que dichos
ataques resulten considerablemente más difíciles y consuman más
tiempo. Exactamente tal como en la Fig. 1, a un proceso (conocido) P
se le alimentan datos de entrada X y una clave (secreta) K para
generar datos de salida Y.
En contraposición a la situación de la Fig. 1,
en la situación de la Fig. 2 la clave K se alimenta hacia el proceso
P desde un proceso complementario P*. El proceso complementario P*
tiene una clave (secundaria) complementaria K* como datos de entrada
para producir, bajo la influencia de una clave auxiliar K', la clave
(primaria) K como datos de salida. Por esta razón, hacia el proceso
P no se alimenta la clave K, tal como en el caso de la situación de
la Fig. 1, desde una fuente externa (por ejemplo, una memoria), sino
que la misma la produce el proceso P* a partir de la clave
(secundaria) complementaria K*:
K =
P\text{*}_{K'}(K).
Por esta razón, es la clave secundaria K*, en
lugar de la clave primaria K, la cual se predetermina y se almacena,
por ejemplo, en una memoria de claves (no mostradas). Según la
invención, la clave primaria K, la cual se alimenta hacia el proceso
P, no se predetermina.
La clave auxiliar K' puede ser una clave
predeterminada, almacenada de forma permanente. También es posible
aplicar un proceso complementario P* en el cual no se use ninguna
clave auxiliar K'.
La combinación de los procesos P y P* constituye
un nuevo proceso el cual se designa esquemáticamente mediante la
referencia Q. Hacia el proceso Q el cual, a causa del proceso
complementario P*, es desconocido por sí mismo, se alimentan los
datos de entrada X y la clave (secundaria) K* para producir los
datos de salida Y. La relación entre la clave secundaria K* y la
clave primaria K queda oculta por el proceso complementario P*.
Preferentemente, el proceso complementario P* es
el inverso de otro proceso invertible R. Es decir:
P\text{*} =
R^{-1}.
Esto permite producir la clave secundaria K* a
partir de la clave primaria K usando R y la clave auxiliar K':
K\text{*} =
R_{K'}(K),
tal como se explicará
posteriormente de forma adicional haciendo referencia a la Fig. 5.
Cabe la posibilidad de ampliar el proceso nuevo Q con el proceso R,
de tal manera que hacia el proceso Q se alimente la clave primaria
K, en lugar de la clave secundaria K*. En este caso, la clave
primaria K en el proceso Q se obtiene a partir
de:
K =
P\text{*}_{k'}(K\text{*}) =
P\text{*}_{K'}(R_{K'}(K)).
Esto permite usar la misma clave (primaria) que
en la técnica anterior.
El proceso criptográfico Q según la invención,
mostrado esquemáticamente en la Fig. 3, comprende también un proceso
P que tiene una clave primaria K y un proceso complementario P* que
tiene una clave auxiliar K', obteniéndose la clave primaria K a
partir de la clave complementaria K* por medio del proceso
complementario P*. Con la complementación del proceso de la Fig. 1,
en este caso los datos de entrada X se alimentan también hacia el
proceso complementario P* de tal manera que la clave primaria K se
determina parcialmente como una función de los datos de entrada
X:
K =
P\text{*}_{K'}(K\text{*},
X).
Como consecuencia, se obtiene una protección
criptográfica complementaria. Adicionalmente, como consecuencia se
ofrece la posibilidad de llevar a cabo el proceso complementario P*
de forma exclusiva si se ofrecen ciertos datos de entrada. Esto
significa que el proceso complementario P* puede comprender una
prueba de los datos de entrada X, y la ejecución del proceso
complementario P* puede depender del resultado de dicha prueba. De
este modo, el proceso complementario P* se puede llevar a cabo, por
ejemplo solamente si los últimos dos bits de los datos de entrada X
son iguales a cero. El efecto de dicha operación dependiente de los
datos de entrada es que la clave primaria correcta K se producirá
únicamente para ciertos datos de entrada X de tal manera que
únicamente dichos datos de entrada generarán los datos de salida Y
deseados. Como consecuencia, se entenderá que se produce una mejora
adicional de la seguridad criptográfica.
La Fig. 4 muestra esquemáticamente la forma
según la cual se pueden llevar a cabo de forma alternada
("intercalado") las subetapas de los procesos P y P* para
mejorar adicionalmente la protección contra ataques. Las subetapas
pueden incluir las denominadas "rondas", tal como, por ejemplo,
en el caso del DES. No obstante, preferentemente las subetapas
comprenden solamente una o unas pocas instrucciones de un programa,
con el cual se están llevando a cabo los procesos.
\newpage
En una primera etapa 101, se lleva a cabo una
primera subetapa P_{1} del proceso P. Subsiguientemente, en una
segunda etapa 102, se lleva a cabo la primera subetapa P_{1}* del
proceso complementario P*. De forma similar, en una tercera etapa
103, se lleva a cabo la segunda etapa P_{2} del proceso P,
etcétera. Esta secuencia continúa hasta que se ha llevado a cabo, en
la etapa 110, la última subetapa P_{n}* del proceso complementario
P*, suponiendo, en aras de simplificar el ejemplo, que los procesos
P y P* comprenden el mismo número de subetapas. Si no es así, en la
etapa 110 se lleva a cabo la última subetapa correspondiente, y en
otras etapas se llevan a cabo las subetapas restantes.
Alternando las subetapas del proceso P, el cual
es conocido por sí mismo, y el proceso P* (posiblemente también
conocido por sí mismo), se puede obtener una serie de subetapas la
cual no se corresponde con la de un proceso conocido. Como
consecuencia, resulta más difícil reconocer la naturaleza del
proceso.
El proceso criptográfico P mostrado
esquemáticamente, únicamente a título de ejemplo, en la Fig. 5,
según la técnica anterior, comprende varias etapas S_{i} (es
decir, S_{1}, S_{2},...S_{n}). En cada etapa S_{i}, hacia
una operación criptográfica F_{i} se alimentan datos (del lado
derecho) RD_{i}. Dicha operación criptográfica puede comprender en
sí misma una serie de subetapas, tales como una expansión, una
combinación con una clave, una sustitución y una permutación las
cuales, sin embargo, no se han designado por separado en aras de
simplificar el dibujo. La operación criptográfica F_{i}
proporciona datos procesados FD_{i}:
FD_{i} =
F_{i}(RD_{i}).
En una operación combinatoria CC_{i}
(CC_{1}, CC_{2},..., indicando siempre el índice i la etapa S en
cuestión), los datos procesados FD_{i} se combinan con datos del
lado izquierdo LD_{i} para formar datos (del lado izquierdo)
modificados SD_{i} los cuales, exactamente tal como los datos del
lado derecho originales RD, se trasladan hacia la siguiente etapa.
Preferentemente, las operaciones combinatorias CC_{i} son
operaciones XOR (símbolo: \oplus).
Tal como se muestra en la Fig. 5, al final de
cada etapa S_{i} los datos del lado izquierdo modificados SD_{i}
y los datos del lado derecho RD_{i} cambian posiciones de tal
manera que forman los datos del lado derecho RD_{i+1} y los datos
del lado izquierdo LD_{i+1} de la siguiente etapa S_{i+1}.
Los datos del lado izquierdo LD_{1} y los
datos del lado derecho RD_{1} de la primera etapa S_{1} se
obtuvieron, en una operación anterior, a partir de los datos de
entrada X y, al realizar dicha operación, pueden experimentar un
procesado preparatorio, tal como una permutación de entrada. Los
datos de salida SD_{n} y RD_{n} de la última etapa S_{n}
forman los datos procesados Y del proceso P, posiblemente después de
que los mismos hayan experimentado una operación final, tal como una
permutación de salida PP^{-1}.
El proceso criptográfico de la Fig. 6 se
corresponde en gran parte con el de la Fig. 5. Según la invención,
los datos presentes en y entre las etapas se enmascaran con valores
auxiliares. Con este fin, en esta forma de realización la primera
etapa S_{1} viene precedida por las operaciones combinatorias
(preparatorias) DC y EC, las cuales son también preferentemente
operaciones XOR. Las mismas combinan respectivamente los datos del
lado izquierdo LD_{1} y los datos del lado derecho RD_{1}, los
cuales se originan a partir de la operación preparatoria (PP), con
un valor auxiliar inicial A_{0} y un primer valor auxiliar
A_{1}. Los resultados de las operaciones combinatorias DC y EC son
respectivamente datos enmascarados del lado izquierdo LD'_{1} y
datos enmascarados del lado derecho RD_{1}' (en el presente
texto, en lo sucesivo los datos enmascarados se designarán con un
apóstrofo). Los enmascaramientos se realizan en las etapas
subsiguientes. Como los datos del lado izquierdo de la segunda etapa
S_{2} son iguales a los datos del lado derecho enmascarados de la
primera etapa S_{1}, también se enmascaran dichos datos del lado
izquierdo LD'_{2}. Los datos del lado derecho RD_{2}' de la
segunda etapa se enmascaran ya que son iguales a los datos
modificados enmascarados SD_{1}'.
De este modo, la combinación de los datos
LD_{i} y RD_{i} con los valores auxiliares A_{1} da como
resultado el enmascaramiento de los datos modificados LD_{i}' y
RD_{i}', como consecuencia de lo cual resulta considerablemente
más difícil obtener los datos originales X la clave usada a partir
de los datos enmascarados LD_{i}' y RD_{i}'.
Para eliminar los valores auxiliares A_{1}
antes de la operación final (PP^{-1}), se proporcionan operaciones
combinatorias suplementarias FC y GC, las cuales combinan los datos
del lado izquierdo modificados y enmascarados SD'_{n} de la última
etapa S_{n} con un valor auxiliar A_{n+1} y los datos del lado
derecho enmascarados RD_{n}' con un valor auxiliar A_{n},
respectivamente. De esta manera, debido a que A_{i} \oplus
A_{i} es cero, los valores auxiliares A_{i} eliminan los
enmascaramientos. Como consecuencia, es posible llevar a cabo el
método de tal manera que, a pesar del uso de los valores auxiliares
A_{i}, los datos finales Y son iguales a los que se habrían
obtenido a través del método convencional según la Fig. 5.
Para excluir el efecto de los valores auxiliares
A_{i} sobre los resultados FD_{i} de las operaciones F_{i}, en
cada etapa S_{i} hay presente preferentemente una operación
combinatoria complementaria AC_{i} la cual combina los datos del
lado derecho RD_{i} con un valor auxiliar (primario) A_{i} antes
de que estos datos se alimenten a la operación criptográfica
F_{i}. El resultado de cada operación combinatoria complementaria
AC_{i} es los datos del lado derecho no enmascarados RD_{i}, de
manera que la operación criptográfica F_{i} actúa sobre los mismos
datos que en el proceso de la Fig. 5.
De forma ventajosa, se puede insertar otra
operación combinatoria BC_{i} entre la operación criptográfica
F_{i} y la operación combinatoria CC_{i} con el fin de combinar
los datos (del lado derecho) procesados FD_{i} con otro valor
auxiliar (secundario) B_{i}. Como consecuencia, se puede conseguir
un enmascaramiento de los datos procesados FD_{i} y otro
enmascaramiento de los datos del lado izquierdo (modificados)
SD_{i}'. Preferentemente, las operaciones combinatorias AC_{i} y
BC_{i} son también operaciones XOR.
Según otro aspecto de la invención, los valores
auxiliares A_{i} y B_{i} están relacionados. Los valores
auxiliares secundarios B_{i} se forman, preferentemente usando una
operación XOR, a partir del primer valor auxiliar
A_{i-1} de la etapa anterior y el valor auxiliar
A_{i+1} de la siguiente etapa:
B_{i} =
A_{i-1} \ \oplus \
A_{i+1}.
Esto da como resultado que cada valor auxiliar
primario A_{i+1} el cual, usando otra operación combinatoria
complementaria BC_{i}, se combina con los datos procesados del
lado derecho FD_{i} como un componente del segundo valor auxiliar
B_{i}, se compense repetidamente en la siguiente etapa, es decir,
la etapa S_{i+1}, por medio de una operación combinatoria AC_{i}
antes de someter los datos del lado derecho RD_{i+1} a la
operación F_{i}. Los datos del lado derecho (enmascarados)
RD_{i}' en cuestión, los cuales constituyen los datos del lado
izquierdo (enmascarados) LD_{i+1}' de la todavía siguiente etapa
S_{i+2}, se combinan allí con el valor auxiliar primario A_{i+1}
y quedan compensados de esta manera. El valor auxiliar A_{i+1} se
manifiesta él mismo en los datos modificados SD_{i}', de tal
manera que permanece enmascarado entre dos etapas.
Los datos del lado izquierdo LD_{1} de la
primera etapa S_{1} se enmascaran con el valor auxiliar adicional
o inicial (primario) A_{0}. Mediante la combinación, con el valor
auxiliar secundario B_{1} = A_{0} \oplus A_{2}, se elimina
el valor auxiliar inicial A_{0} (debido a que A_{0} \oplus
A_{0} es cero), aunque se mantienen el valor auxiliar A_{2} y el
enmascaramiento obtenido con el mismo. En esta forma de realización,
el valor auxiliar inicial A_{0} se selecciona preferentemente de
manera que es igual al primer valor auxiliar A_{1}.
Aunque todos los valores auxiliares primarios
A_{i} se seleccionan preferentemente de manera que son diferentes,
con la excepción de A_{0} = A_{1}, es posible seleccionar todos
los valores auxiliares primarios A_{i} de manera que sean iguales.
En este caso, todos los valores auxiliares secundarios B_{i} de la
forma de realización mostrada serán iguales a cero, de manera que se
pueden omitir las otras operaciones combinatorias BC_{i}. La
invención se aplica además a procesos P que contienen solamente una
etapa S, o presentan una estructura modificada.
En el proceso de la Fig. 7, el cual se
corresponde en gran parte con el de la Fig. 6, las operaciones
combinatorias AC_{i} y BC_{i} y la operación criptográfica
F_{i} en cada una de las etapas se integran para formar una
operación combinada F_{i}'. La integración de las operaciones
combinatorias en las operaciones F_{i} es posible ajustando
adecuadamente, por ejemplo, una tabla de sustitución de la operación
F_{i}. Como consecuencia, se pueden omitir las operaciones
combinatorias complementarias AC_{i} y BC_{i} y el resultado de
la operación ajustada F_{i}' es igual al resultado del total de
la propia operación F_{i} y las operaciones combinatorias:
FD_{i}' =
F_{i}'(RD_{i}') = B_{i} \ \oplus \ F_{i} (A_{i} \ \oplus \
RD_{i}').
Básicamente, cada etapa S_{i} requiere una
operación combinatoria F_{i} diferente en la cual se integran
varios valores auxiliares A_{i} (ver Fig. 6). Unicamente si los
valores auxiliares A_{i} se seleccionan de manera que son iguales,
es decir, A_{1}=A_{2}=...=A_{n}, las operaciones combinatorias
F_{i} en esta forma de realización pueden ser iguales.
Preferentemente, cada vez que se lleva a cabo el
proceso, se seleccionan de nuevo los valores A_{i}. Para el
proceso de la Fig. 7, esto significa en este caso que las
operaciones combinadas F_{i}' se determinan nuevamente. Como las
operaciones F_{i}' en muchas implementaciones comprenderán el uso
de varias tablas, tales como tablas de sustitución, dichas tablas se
determinarán nuevamente cada vez que se lleve a cabo el proceso P.
Para ofrecer una protección complementaria contra ataques, según
otro aspecto de la invención, las tablas se determinarán en un orden
aleatorio. Si una operación combinada F_{i}' comprende, por
ejemplo, ocho tablas, dichas ocho tablas se determinarán en otro
orden cada vez que dicha operación F_{i}' se lleve a cabo
nuevamente. Dicho orden se puede determinar basándose en el
contenido de un registro de orden, cuyo contenido se puede formar
cada vez por medio de un número aleatorio originado a partir de un
generador de números aleatorios. Basándose en el contenido del
registro de orden, se puede componer cada vez una tabla de consulta
nueva. Usando la tabla de consulta, las tablas se pueden escribir en
una memoria y pueden ser leídas posteriormente.
Según otro aspecto de la invención, que
complementa al anterior o en lugar del mismo, los elementos de cada
tabla se pueden determinar y/o almacenar en un orden aleatorio. Con
esta medida, se consigue mejorar también la protección contra los
ataques. También en este caso, se puede aplicar una tabla de
consulta sobre la base de la cual se pueden recuperar posteriormente
los elementos.
Las medidas a las que se ha hecho referencia
anteriormente también se pueden aplicar en otra forma de realización
de la invención, tal como la de la Fig. 8, o en otros procesos
completamente diferentes, ya sean criptográficos
o no.
o no.
La forma de realización de la Fig. 8 se
corresponde en gran parte con la de la Fig. 7. Complementando la
Fig. 7, cada etapa S_{i}, con la excepción de la última etapa
S_{n}, incluye una operación combinatoria HC_{i} la cual combina
los datos del lado derecho RD_{i} con un valor auxiliar terciario
W_{i}. Preferentemente, el valor auxiliar terciario W_{i} es
igual a la combinación XOR de los valores auxiliares A_{0} y
A_{1}:
W = A_{0} \
\oplus \
A_{1},
en la que A_{0} \neq
A_{1}.
Esto da como resultado que la operación HC_{i}
sume siempre el valor auxiliar inicial A_{0} y compense el primer
valor auxiliar A_{1}. Como consecuencia, es posible que todas las
operaciones criptográficas F_{i} sean esencialmente idénticas, lo
cual requiere una capacidad mucho menor de procesado y/o
almacenamiento de un sistema procesador con el cual se lleve a cabo
el método. En la forma de realización de la Fig. 8, las operaciones
F_{i}'' son unos ajustes de las operaciones originales F_{i}
tales que las mismas se corrigen para el valor auxiliar A_{1} y
adicionalmente combinan el valor auxiliar terciario W = A_{o}
\oplus A_{1} con su resultado. En otras palabras, si RD_{i}
\oplus A_{1} se alimenta a F'', el resultado será igual a
FD_{i}' =
F_{1}(RD_{1}) \ \oplus \
W.
Los expertos en la materia entenderán que los
procesos combinatorios AC_{i}, BC_{i} y HC_{i} se pueden
llevar a cabo en sitios diferentes del proceso criptográfico P para
alcanzar un efecto comparable o incluso idéntico.
La Fig. 9 muestra esquemáticamente un circuito
10 para implementar el método según la invención. El circuito 10
comprende una primera memoria 11, una segunda memoria 12 y un
procesador 13, acoplándose las memorias 11 y 12 y el procesador 13
mediante el uso de un bus de datos 14. Al proporcionar dos memorias,
es posible llevar a cabo cada vez una subetapa de uno de entre los
procesos P y P* (ver Fig. 4) para almacenar el resultado de dicha
subetapa, por ejemplo, en la primera memoria 11, y desde la segunda
memoria 12 transferir un resultado provisional anterior del otro
proceso hacia el procesador 13. De esta manera, es posible llevar a
cabo eficazmente el cálculo alternado de las subetapas de dos
procesos diferentes.
El sistema de pago, mostrado esquemáticamente en
la Fig. 10, comprende unos medios electrónicos de pago 1 y una
estación de pago 2. Los medios electrónicos de pago 1 son, por
ejemplo, la denominada tarjeta inteligente, es decir, una tarjeta
provista de un circuito integrado para almacenar y procesar datos de
pagos. La estación de pago 2 comprende un lector de tarjetas 21 y un
circuito procesador 22. El circuito procesador 22 se puede
corresponder con el circuito 10 de la Fig. 9.
En el comienzo de una transacción, los medios de
pago 1 transmiten una identificación (identificación de tarjeta) ID
hacia la estación de pago 2. Haciendo referencia a dicha
identificación, la estación de pago 2 determina una clave la cual
será usada para dicha transacción. Dicha identificación ID se puede
alimentar como datos de entrada X (ver las figuras 1 a 3) hacia un
proceso criptográfico el cual, basándose en una clave maestra MK,
produce una clave de transacción dependiente de la identificación
K_{ID} como datos de salida Y. Con este fin, según la invención,
se usa el proceso mostrado en las figuras Fig. 2 y 3, habiéndose
transformado de antemano la clave maestra MK, usando un proceso R,
en una clave maestra complementaria MK*. A continuación, dicha clave
maestra complementaria MK* se alimenta, preferentemente junto con la
identificación ID, según la Fig. 3, hacia el proceso complementario
P* para reproducir la clave maestra original MK y obtener la clave
de transacción K_{ID} a partir de la identificación ID.
Aunque en las figuras Fig. 2 y 3, se muestra
siempre un único proceso complementario P*, cabe la posibilidad de
que se puedan usar varios procesos P*, P**, P***,..., en serie y/o
en paralelo para obtener la clave primaria K.
Los expertos en la materia entenderán que son
posibles muchas modificaciones y correcciones sin apartarse del
alcance de la invención.
Claims (25)
1. Método para procesar criptográficamente
datos usando un circuito o un procesador, que comprende la
alimentación, hacia un proceso criptográfico (P), de valores, que
incluyen los datos (X) y una clave (K), y la ejecución del proceso
(P) para formar datos de salida procesados criptográficamente (Y),
caracterizado porque se alimentan hacia el proceso (P), unos
valores auxiliares (K*, A_{0},..., A_{0+1}, B_{0},...,
B_{n}) para enmascarar los valores, incluyendo la clave (K),
usados en el proceso (P), y porque se compensa, mediante un proceso
auxiliar, la influencia de los valores auxiliares sobre los datos de
salida (Y).
2. Método según la reivindicación 1, en el
que un valor auxiliar comprende una clave complementaria (K*) la
cual se alimenta hacia un proceso complementario (P*) para formar la
clave (K).
3. Método según la reivindicación 2, en el
que el proceso complementario (P*) comprende un proceso
criptográfico hacia el cual se alimenta una clave auxiliar (K').
4. Método según la reivindicación 2 ó 3, en
el que el proceso complementario (P*) es un proceso invertible.
5. Método según la reivindicación 2, 3 ó 4,
en el que los datos (X) se alimentan también hacia el proceso
complementario (P*).
6. Método según la reivindicación 5, en el
que la ejecución del proceso complementario (P*) tiene lugar
exclusivamente si los datos (X) tienen unas propiedades
predeterminadas.
7. Método según cualquiera de las
reivindicaciones 2 a 6, en el que el proceso (P) y el proceso
complementario (P*) se constituyen cada uno de ellos a partir de una
serie de etapas, y en el que se alternan las etapas del proceso (P)
y el proceso complementario (P*).
8. Método según cualquiera de las
reivindicaciones anteriores, en el que el proceso (P) comprende una
serie de etapas (S_{i}), presentando cada una de ellas una
operación criptográfica (F_{i}, F_{i}', F_{i}'') para procesar
datos del lado derecho (RD_{i}) obtenidos a partir de los datos
(X) y una operación combinatoria (C_{i}) para combinar, con datos
del lado izquierdo (LD_{i}) obtenidos también a partir de los
datos (X), los datos procesados del lado derecho (FD_{i}) con
vistas a formar datos del lado izquierdo modificados (SD_{i}), y
en el que los datos del lado derecho (RD_{i}) se combinan con un
valor auxiliar primario (A_{1}) antes de la primera etapa
(S_{1}) y los datos del lado izquierdo (LD_{1}) se combinan con
un valor auxiliar adicional (A_{0}).
9. Método según la reivindicación 8 en el
que, inmediatamente después de la última etapa (S_{n}), los datos
del lado derecho (RD_{n}) se combinan con otro valor auxiliar
primario (A_{n}) y los datos del lado izquierdo modificados
(SD_{n}^{1}) se combinan con otro valor auxiliar adicional
(A_{n+1}).
10. Método según la reivindicación 8 ó 9, en el
que los datos del lado derecho (RD_{i}) se combinan, en cada etapa
(S_{i}) y antes de la operación (F_{i}'), con el valor auxiliar
primario (A_{i}) de dicha etapa (S_{i}).
11. Método según la reivindicación 10, en el que
los datos procesados del lado derecho (FD_{i}) se combinan,
después de la operación (F_{i}), con el valor auxiliar secundario
(B_{i}) de dicha etapa (S_{i}).
12. Método según las reivindicaciones 10 y 11,
en el que el valor auxiliar secundario (B_{i}) de una etapa
(S_{i}) se forma a partir de la combinación del valor auxiliar
primario (A_{i-1}) de la etapa anterior y el valor
auxiliar primario (A_{i+1}) de la siguiente etapa.
13. Método según cualquiera de las
reivindicaciones 8 a 12, en el que todos los valores auxiliares
primarios (A_{i}) son iguales.
14. Método según cualquiera de las
reivindicaciones 9 a 13, en el que los valores auxiliares primarios
(A_{i}) y/o los valores auxiliares secundarios (B_{i}) se han
combinado cada vez de antemano con la operación respectiva
(F_{i}).
15. Método según la reivindicación 14, en el que
una operación combinada (F_{i}') contiene varias tablas, y en el
que las tablas se determinan en un orden diferente cada vez que se
lleva a cabo el proceso (P).
16. Método según la reivindicación 14 ó 15, en
el que una operación combinada (F_{i}') contiene varias tablas, y
en el que los elementos de las tablas se determinan y/o almacenan en
un orden diferente cada vez que se lleva a cabo el proceso (P).
17. Método según la reivindicación 16, en el que
el orden se almacena en forma de una tabla de consulta para
beneficiar a la lectura de los elementos.
18. Método según cualquiera de las
reivindicaciones 8 a 17, en el que los datos del lado derecho
(RD_{i}) se combinan con un valor auxiliar terciario (W_{i})
después de cada etapa (S_{i}).
19. Método según la reivindicación 18, en el que
el valor auxiliar terciario (W_{i}) en todas las etapas, excepto
la última (S_{n}), es igual a la combinación del valor auxiliar
primario (A_{1}) de la primera etapa (S_{1}) y el valor auxiliar
adicional (A_{0}), y en la última etapa (S_{n}) es igual a
cero.
20. Método según cualquiera de las
reivindicaciones 8 a 19, en el que la combinación se lleva a cabo
usando una operación XOR.
21. Método según cualquiera de las
reivindicaciones anteriores, en el que los datos (X) comprenden unos
datos de identificación de unos medios de pago (1) y los datos
procesados (Y) forman una clave diversificada.
22. Método según cualquiera de las
reivindicaciones anteriores, en el que el proceso (P) comprende el
DES, preferentemente el triple DES.
23. Circuito (10) que comprende unos medios
adaptados para llevar a cabo cada una de las etapas del método según
la reivindicación 1.
24. Tarjeta de pago (1) que comprende un
circuito (10) según la reivindicación 23.
25. Terminal de pago (2) que comprende un
circuito (10) según la reivindicación 23.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL1010921A NL1010921C2 (nl) | 1998-12-30 | 1998-12-30 | Werkwijze en inrichting voor het cryptografisch bewerken van data. |
NL1010921 | 1998-12-30 | ||
NL1011544 | 1999-03-12 | ||
NL1011544A NL1011544C1 (nl) | 1998-12-30 | 1999-03-12 | Werkwijze en inrichting voor het cryptografisch bewerken van data. |
NL1011800A NL1011800C2 (nl) | 1998-12-30 | 1999-04-15 | Werkwijze en inrichting voor het cryptografisch bewerken van data. |
NL1011800 | 1999-04-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2270628T3 true ES2270628T3 (es) | 2007-04-01 |
Family
ID=27351198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES99963594T Expired - Lifetime ES2270628T3 (es) | 1998-12-30 | 1999-12-16 | Metodo y dispositivo para procesar criptograficamente datos. |
Country Status (7)
Country | Link |
---|---|
US (1) | US7162031B1 (es) |
EP (1) | EP1142191B1 (es) |
AT (1) | ATE336122T1 (es) |
AU (1) | AU1983300A (es) |
DE (1) | DE69932740T2 (es) |
ES (1) | ES2270628T3 (es) |
WO (1) | WO2000041356A1 (es) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2802741B1 (fr) * | 1999-12-15 | 2003-10-31 | Sagem | Dispositif mettant en oeuvre un algorithme de chiffrage par bloc a repetition de rondes |
FR2804524B1 (fr) * | 2000-01-31 | 2002-04-19 | Oberthur Card Systems Sas | Procede d'execution d'un protocole cryptographique entre deux entites electroniques |
CA2298990A1 (en) * | 2000-02-18 | 2001-08-18 | Cloakware Corporation | Method and system for resistance to power analysis |
US20020061107A1 (en) * | 2000-09-25 | 2002-05-23 | Tham Terry K. | Methods and apparatus for implementing a cryptography engine |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US9323955B2 (en) | 2000-12-21 | 2016-04-26 | Gemalto Sa | Method for protecting a logic or mathematical operator installed in an electronic module with a microprocessor as well as the associated embedded electronic module and the system |
FR2820576B1 (fr) * | 2001-02-08 | 2003-06-20 | St Microelectronics Sa | Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage |
WO2003075506A1 (en) * | 2002-03-07 | 2003-09-12 | Axalto Sa | Method for making safe an electronic cryptography assembly with a secret key |
US7403620B2 (en) | 2002-07-02 | 2008-07-22 | Stmicroelectronics S.A. | Cyphering/decyphering performed by an integrated circuit |
DE10328860B4 (de) * | 2003-06-26 | 2008-08-07 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Verschlüsseln von Daten |
JP2005056413A (ja) | 2003-08-01 | 2005-03-03 | Stmicroelectronics Sa | 複数の同じ計算の保護 |
EP1513285A1 (en) * | 2003-09-05 | 2005-03-09 | Mediacrypt AG | Method for generating pseudo-random sequence |
DE102004052196B4 (de) * | 2004-10-27 | 2017-04-06 | Giesecke & Devrient Gmbh | Ausspähungsgeschütztes Ausführen von Operationen unter Verwendung einer maskenunterstützenden Recheneinheit |
FR2924550A1 (fr) * | 2007-11-30 | 2009-06-05 | Commissariat Energie Atomique | Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire. |
FR2941343B1 (fr) * | 2009-01-20 | 2011-04-08 | Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst | Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement. |
JP5458611B2 (ja) * | 2009-03-13 | 2014-04-02 | ソニー株式会社 | 暗号処理装置 |
FR2951599B1 (fr) * | 2009-10-20 | 2011-11-25 | St Microelectronics Rousset | Procede securise de calcul cryptographique et composant electronique correspondant |
DE102011088502B3 (de) * | 2011-12-14 | 2013-05-08 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur Absicherung von Blockchiffren gegen Template-Attacken |
WO2016034912A1 (en) * | 2014-09-05 | 2016-03-10 | Umm Al-Qura University | Method and apparatus for scalar multiplication secure against differential power attacks |
US10311229B1 (en) * | 2015-05-18 | 2019-06-04 | Amazon Technologies, Inc. | Mitigating timing side-channel attacks by obscuring alternatives in code |
US10868665B1 (en) * | 2015-05-18 | 2020-12-15 | Amazon Technologies, Inc. | Mitigating timing side-channel attacks by obscuring accesses to sensitive data |
US11177933B2 (en) | 2019-03-24 | 2021-11-16 | Google Llc | Side channel timing attack mitigation in securing data in transit |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4302810A (en) * | 1979-12-28 | 1981-11-24 | International Business Machines Corporation | Method and apparatus for secure message transmission for use in electronic funds transfer systems |
US5003596A (en) * | 1989-08-17 | 1991-03-26 | Cryptech, Inc. | Method of cryptographically transforming electronic digital data from one form to another |
JPH0812537B2 (ja) * | 1993-03-11 | 1996-02-07 | 日本電気株式会社 | 暗号化装置 |
US5768390A (en) * | 1995-10-25 | 1998-06-16 | International Business Machines Corporation | Cryptographic system with masking |
US5724428A (en) * | 1995-11-01 | 1998-03-03 | Rsa Data Security, Inc. | Block encryption algorithm with data-dependent rotations |
US5745577A (en) * | 1996-07-25 | 1998-04-28 | Northern Telecom Limited | Symmetric cryptographic system for data encryption |
US6028933A (en) * | 1997-04-17 | 2000-02-22 | Lucent Technologies Inc. | Encrypting method and apparatus enabling multiple access for multiple services and multiple transmission modes over a broadband communication network |
TW396704B (en) | 1997-08-07 | 2000-07-01 | Hitachi Ltd | Cipher conversion method, cipher conversion apparatus, decoding method, decoding apparatus, and data communication system |
-
1999
- 1999-12-16 ES ES99963594T patent/ES2270628T3/es not_active Expired - Lifetime
- 1999-12-16 US US09/787,648 patent/US7162031B1/en not_active Expired - Lifetime
- 1999-12-16 AT AT99963594T patent/ATE336122T1/de not_active IP Right Cessation
- 1999-12-16 EP EP99963594A patent/EP1142191B1/en not_active Expired - Lifetime
- 1999-12-16 WO PCT/EP1999/010208 patent/WO2000041356A1/en active IP Right Grant
- 1999-12-16 DE DE69932740T patent/DE69932740T2/de not_active Expired - Lifetime
- 1999-12-16 AU AU19833/00A patent/AU1983300A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
DE69932740T2 (de) | 2006-12-07 |
EP1142191B1 (en) | 2006-08-09 |
US7162031B1 (en) | 2007-01-09 |
EP1142191A1 (en) | 2001-10-10 |
AU1983300A (en) | 2000-07-24 |
WO2000041356A1 (en) | 2000-07-13 |
DE69932740D1 (de) | 2006-09-21 |
ATE336122T1 (de) | 2006-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2270628T3 (es) | Metodo y dispositivo para procesar criptograficamente datos. | |
ES2717999T3 (es) | Método criptográfico por bloques para cifrar/descifrar mensajes y dispositivos criptográficos para implementar este método | |
EP3386143B1 (en) | Method and system for generating a private key for encrypted data transfer between an electronic identity document and a terminal | |
US8577023B2 (en) | Encryption processing method, apparatus, and computer program utilizing different types of S-boxes | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
US11151290B2 (en) | Tamper-resistant component networks | |
CA2400220A1 (en) | Consumable authentication protocol and system | |
EP1833190A1 (en) | Table splitting for cryptographic processes | |
EP3363142B1 (en) | A cryptographic device and an encoding device | |
EP3531613B1 (en) | Method and circuit for implementing a substitution table | |
KR102169369B1 (ko) | 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치 | |
US8619985B2 (en) | Table splitting for cryptographic processes | |
US20060153372A1 (en) | Smart card and method protecting secret key | |
CN106100823B (zh) | 保护密码装置 | |
JP2021507310A (ja) | キー付きメッセージ認証コードのホワイトボックス計算 | |
Regazzoni et al. | Power attacks resistance of cryptographic s-boxes with added error detection circuits | |
US20200226270A1 (en) | System and method for multilayer data protection for memory devices | |
US7450716B2 (en) | Device and method for encrypting data | |
US11500786B2 (en) | System and method for protecting memory encryption against template attacks | |
EP3531612B1 (en) | Method and device for performing substitution table operations | |
Noorbasha et al. | FPGA implementation of cryptographic systems for symmetric encryption. | |
KR101105384B1 (ko) | 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 | |
US11477024B2 (en) | Information processing apparatus and information processing method | |
KR20090079664A (ko) | 아리아 마스킹 방법 및 이를 이용한 아리아 암호 장치 및방법 | |
JP5556955B2 (ja) | 暗号処理装置、認証方法およびプログラム |