Aquí presentamos algunas notaciones que se utilizan en este artículo.
Notación matemática básica
- El conjunto de números enteros.
- El conjunto de polinomios univariados con coeficientes en el campo finito de cardinalidad 2.
- entero tal que para entero y .
- polinomio con tal que con .
Notación de cadena básica
- El conjunto de todas las cuerdas.
- El conjunto de todas las cadenas con longitud n.
Para - longitud de la cuerda . La cadena de longitud cero se denota.
Para - el resultado de y concatenación.
Bits, bytes, palabras
- El conjunto de bits.
Tomemos todos los conjuntos de formas. Para tal conjunto A definimos el "elemento cero":
;
por
.
Definimos como un conjunto de bytes, y como un conjunto de palabras.
Para con y definimos un operador de relleno:
.
Operador de conversión
Operador de conversión hace una conversión entre elementos .
Par de claves de cifrado
El esquema de cifrado emplea dos tipos de
claves: clave pública ACE:.
Clave privada ACE:.
Para un parámetro de tamaño dado m, tal que , los componentes clave se definen como:
- un número primo de 256 bits.
- un número primo de m bits, tal que .
- elementos (cuyo módulo de orden multiplicativo divide ).
- elementos .
- elementos con y , dónde y .
Generación de claves
Algoritmo. Generación de claves para el esquema de cifrado ACE.
Entrada: un parámetro de tamaño m, tal que .
Salida: un par de claves pública / privada.
- Genera un primo aleatorio , tal que .
- Genera un primo aleatorio , , tal que .
- Genera un entero aleatorio , tal que .
- Genera números enteros aleatorios y
- Calcule los siguientes enteros en :
,
,
,
,
.
- Genera cadenas de bytes aleatorias y , dónde y .
- Devuelve el par de clave pública / clave privada
Representación de texto cifrado
Un texto cifrado del esquema de cifrado ACE tiene la forma
,
donde los componentes se definen como:
- enteros de (cuyo módulo de orden multiplicativo divide ).
- elemento .
- elemento .
llamamos el preámbulo , y- el criptograma . Si un texto plano es una cadena que consta de байт, luego la longitud de es igual a .
Necesitamos introducir la función, que asigna un texto cifrado a su cadena de bytes
representación, y la función inversa correspondiente . Para el entero, cadena de palabras , enteros y cadena de bytes ,
.
Para entero , cadena de bytes , tal que ,
.
Proceso de cifrado
Algoritmo. Operación de cifrado asimétrico ACE.
entrada: clave pública y cadena de bytes .
Salida: cadena de bytes - texto cifrado de .
- Generar al azar.
- Genere el preámbulo del texto cifrado:
- Generar al azar.
- Calcular , .
- Calcular ; tenga en cuenta que.
- Calcular .
- Calcule la clave para la operación de cifrado simétrico:
- , .
- Calcular .
- Calcular criptograma .
- Codifique el texto cifrado:
.
- Regreso .
Antes de iniciar el proceso de cifrado simétrico, el mensaje de entrada se divide en bloques , donde cada uno de los bloques, posiblemente excepto el último, es de 1024 bytes. Cada bloque está encriptado por el cifrado de flujo. Para cada bloque cifradoSe calcula el código de autenticación de mensajes de 16 bytes. Obtenemos el criptograma
.
.
Tenga en cuenta que si , luego .
Algoritmo. Proceso de cifrado asimétrico ACE.
Aporte:
Producción: , .
- Si , luego regresa .
- Inicialice un estado de generador pseudoaleatorio:
- Genera la clave :
.
- .
- Tiempo , Haz lo siguiente:
- .
- Genere valores de máscara para el cifrado y MAC:
- .
- .
- Cifre el texto sin formato: .
- Genere el código de autenticación del mensaje:
- Si , luego ; demás.
- .
- Actualice el texto cifrado: .
- .
- Regreso .
Proceso de descifrado
Algoritmo. Proceso de descifrado ACE.
Entrada: clave pública y la clave privada correspondiente , byt e cadena .
Salida: mensaje descifrado.
- Descifre el texto cifrado:
- Si , luego regresa .
- Calcular:
;
tenga en cuenta que , dónde .
- Verifique el preámbulo del texto cifrado:
- Si o o , luego regresa .
- Si , luego regresa .
- .
- Si , luego .
- Calcular ; tenga en cuenta que.
- Si , luego .
- Si , luego regresa .
- Calcule la clave para la operación de descifrado simétrico:
- , .
- Calcular .
- Calcular ;tenga en cuenta que puede regresar .
- Regreso .
Algoritmo. Operación de descifrado.
Aporte:
Salida: mensaje descifrado .
- Si , luego regresa .
- Inicialice un estado de generador pseudoaleatorio:
- Genera la clave :
.
- .
- Tiempo , Haz lo siguiente:
- .
- Si , luego regresa .
- Genere valores de máscara para el cifrado y MAC:
- .
- .
- Verifique el código de autenticación del mensaje:
- Si , luego ; demás.
- .
- Si , luego regresa .
- Actualice el texto sin formato: .
- .
- Regreso .
El esquema de firma emplea dos tipos de
claves: Clave pública de firma ACE:.
Clave privada de ACE Signature:.
Para el parámetro de tamaño dado, tal que , los componentes clave se definen de la siguiente manera:
- -bit número primo con - también es un número primo.
- -bit número primo con - también es un número primo.
- y tiene o бит.
- elementos (módulo de residuos cuadráticos ).
- Número primo de 161 bits.
- elemento
- elementos .
- elementos .
Generación de claves
Algoritmo. Generación de claves para el esquema de firma de clave pública ACE.
Entrada: parámetro de tamaño, tal que .
Salida: par de claves pública / privada.
- Genera números primos aleatorios, tal que y - también es un número primo, y
,
, и
,
donde
y . - Colocar .
- Genera un número primo aleatorio , где .
- Generar aleatorio , teniendo en cuenta y y calcular .
- Generar aleatorio y calcular .
- Genera cadenas de bytes aleatorias , y .
- Devolver par de clave pública / clave privada
.
Representación de firma
La firma en el esquema de firmas ACE tiene la forma , donde los componentes se definen de la siguiente manera:
- elemento .
- entero, tal que .
- elementos .
- elemento ;tenga en cuenta que , dónde - mensaje que se está firmando.
Necesitamos presentar el función, que mapea una firma en su representación de cadena de bytes, y la función inversa correspondiente . Para entero, cadena de bytes , enteros y y cadena de bytes ,
.
Para entero , cadena de bytes , dónde ,
.
Proceso de generación de firmas
Algoritmo. Proceso de generación de firmas ACE.
Entrada: clave pública y la clave privada correspondiente y cadena de bytes , .
Salida: cadena de bytes - firma digital.
- Realice los siguientes pasos para aplicar un hash a los datos de entrada:
- Genera una clave hash al azar, de modo que .
- Calcular .
- Seleccione al azar y calcular .
- Calcular .
- Genera un primo aleatorio , , y su certificado de corrección : . Repita este paso hasta.
- Colocar ; tenga en cuenta que.
- Calcular , dónde
,
y donde y . - Codifique la firma:
.
- Regreso