> For the complete documentation index, see [llms.txt](https://docs.editran.onesait.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-ims/operacion/anexo-c.-sistema-de-criptografia-en-onesait-editran.md).

# Anexo C. Sistema de criptografía en Onesait Editran

En la aplicación existen un modo de funcionamiento criptográfico, correspondiente con la Versión Criptográfica 3.0 y 4.0. Esta modalidad utiliza claves criptográficas que no son intercambiadas por Editran. Las claves se intercambiarán entre los usuarios. Las alternativas posibles son:

* Claves simétricas DES, intercambiadas externamente por los usuarios, que permiten cifrado triple DES (TD3C) de los datos.
* Claves públicas y privadas mediante algoritmo RSA, intercambiadas externamente, que soportan firma electrónica de trasmisiones y:
  * cifrado triple DES (TD3C) de los datos. Versión Criptográfica 3.0.
  * cifrado AES de los datos, con clave simple, doble o triple (para versión 5.2 ó superior). Versión Criptográfica 4.0.

## Parametrización del sistema criptográfico

Los lábeles o etiquetas son proporcionados por una Interfaz de Claves o bien se referencian directamente en el Perfil de la sesión. El algoritmo de autenticación puede ser DES o RSA.

* Con esta parametrización se cifran los datos en tiempo de carga (Batch) con Claves de Intercambio obtenidas de forma externa a Editran y con algoritmo de cifrado de datos triple DES, los parámetros a codificar serían los siguientes:

<table data-header-hidden><thead><tr><th valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"></td><td valign="top">Editran</td></tr><tr><td valign="top">CRIPTOGRAFÍA</td><td valign="top">S</td></tr><tr><td valign="top">VERSIÓN CRIPTOGRÁFICA</td><td valign="top">3.0</td></tr><tr><td valign="top">ALGORITMO DE CIFRADO DE DATOS</td><td valign="top">TD3C</td></tr><tr><td valign="top">ALGORITMO DE AUTENTICACIÓN</td><td valign="top">DES</td></tr><tr><td valign="top">SUBSISTEMA LOCAL</td><td valign="top"></td></tr><tr><td valign="top">SUBSISTEMA REMOTO</td><td valign="top"></td></tr><tr><td valign="top">CLAVE LOC.</td><td valign="top">Label de la clave local</td></tr><tr><td valign="top">CLAVE REM.</td><td valign="top">Label de la clave remota</td></tr></tbody></table>

* Con esta parametrización se cifran los datos en tiempo de carga (Batch) con Claves RSA, que proporciona la interfaz de Editran, y con algoritmo de cifrado de datos triple DES, los parámetros a codificar serían los siguientes:

<table data-header-hidden><thead><tr><th width="350" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"></td><td valign="top">Editran</td></tr><tr><td valign="top">CRIPTOGRAFÍA</td><td valign="top">S</td></tr><tr><td valign="top">VERSIÓN CRIPTOGRÁFICA</td><td valign="top">3.0/4.0</td></tr><tr><td valign="top">ALGORITMO DE CIFRADO DE DATOS</td><td valign="top">TD3C</td></tr><tr><td valign="top">ALGORITMO DE AUTENTICACIÓN</td><td valign="top">RSA</td></tr><tr><td valign="top">SUBSISTEMA LOCAL</td><td valign="top"><p>Subsistema de la asociación de claves propias Editran/GC</p><p>Ej: H</p></td></tr><tr><td valign="top">SUBSISTEMA REMOTO</td><td valign="top"><p>Subsistema de la asociación de claves ajenas Editran/GC</p><p>Ej: P</p></td></tr><tr><td valign="top">CLAVE LOC.</td><td valign="top"></td></tr><tr><td valign="top">CLAVE REM.</td><td valign="top"></td></tr></tbody></table>

* Con esta parametrización se cifran los datos en tiempo de carga (Batch) con algoritmo de cifrado de datos AES y claves RSA, que proporciona la interfaz de Editran, los parámetros a codificar serían los siguientes:

<table data-header-hidden><thead><tr><th width="351" valign="top"></th><th valign="top"></th></tr></thead><tbody><tr><td valign="top"></td><td valign="top">Editran</td></tr><tr><td valign="top">CRIPTOGRAFÍA</td><td valign="top">S</td></tr><tr><td valign="top">VERSIÓN CRIPTOGRÁFICA</td><td valign="top">4.0</td></tr><tr><td valign="top">ALGORITMO DE CIFRADO DE DATOS</td><td valign="top">AES1 / AES2 / AES3</td></tr><tr><td valign="top">ALGORITMO DE AUTENTICACIÓN</td><td valign="top">RSA</td></tr><tr><td valign="top">SUBSISTEMA LOCAL</td><td valign="top"><p>Subsistema de la asociación de claves propias Editran/GC</p><p>Ej: H</p></td></tr><tr><td valign="top">SUBSISTEMA REMOTO</td><td valign="top"><p>Subsistema de la asociación de claves ajenas Editran/GC</p><p>Ej: P</p></td></tr><tr><td valign="top">CLAVE LOC.</td><td valign="top"></td></tr><tr><td valign="top">CLAVE REM.</td><td valign="top"></td></tr></tbody></table>

## Errores de cifrado

Cuando se produce un Error Criptográfico, La aplicación da una información local del error producido y envía al remoto una petición de liberación con el Motivo del error, liberando posteriormente la conexión.

En el extremo donde se produce el error se informa del Código de Retorno devuelto por el producto que proporciona los servicios criptográficos (ICSF), por lo que, de producirse, habría que consultar las referencias del Return‑Code y/o Reason‑Code en el manual del producto: ICSF "z/OS. Cryptographic Services. Integrated Cryptographic Service Facility. Application Programmer's Guide".

Asimismo, los módulos Editran que acceden al ICSF agrupan estos Errores Criptográficos de la siguiente forma:

<table data-header-hidden><thead><tr><th width="87"></th><th width="499"></th></tr></thead><tbody><tr><td></td><td>ERRORES de CIFRADO Editran</td></tr><tr><td>999</td><td>ERROR AL EXTRAER CLAVE PUBLICA</td></tr><tr><td>998</td><td>ERROR AL GENERAR CLAVE SIMETRICA</td></tr><tr><td>997</td><td>ERROR AL HACER GENERAR PAREJA DE CLAVE</td></tr><tr><td>996</td><td>ERROR AL FIRMAR</td></tr><tr><td>995</td><td>ERROR AL VERIFICAR FIRMA</td></tr><tr><td>994</td><td>ERROR AL EXTRAER CLAVE SIMETRICA</td></tr><tr><td>993</td><td>ERROR AL PONER CLAVE OPERATIVA</td></tr><tr><td>992</td><td>ERROR AL CREAR TOKEN DE CLAVE RSA</td></tr><tr><td>991</td><td>ERROR IMPORTANDO PAREJA RSA</td></tr><tr><td>990</td><td>ERROR IMPORTANDO CLAVE PUBLICA RSA</td></tr><tr><td>989</td><td>ERROR EXPORTANDO CLAVE SIMETRICA</td></tr><tr><td>988</td><td>ERROR AL CALCULAR HASH</td></tr><tr><td>900</td><td>ERROR AL GENERAR NUMERO ALEATORIO</td></tr><tr><td>901</td><td>ERROR AL CIFRAR</td></tr><tr><td>902</td><td>ERROR AL DESCIFRAR</td></tr><tr><td>801</td><td>ERROR CREANDO REGISTRO EN PKDS</td></tr><tr><td>802</td><td>ERROR BORRANDO REGISTRO EN PKDS</td></tr><tr><td>803</td><td>ERROR LEYENDO REGISTRO EN PKDS</td></tr><tr><td>804</td><td>ERROR ESCRIBIENDO REGISTRO EN PKDS</td></tr></tbody></table>

Los Motivos Editran de los Errores Criptográficos que pueden ocurrir son los siguientes.

### Errores de Criptografía v3.0/ v4.0 RSA o DES <a href="#toc503367090" id="toc503367090"></a>

* (1): Se produjo un error al obtener la clave local, bien porque no se suministró en Perfiles o bien por un error en la Interfaz de Claves.
* (2): Al intentar enviar una petición de asociación o una respuesta se produce un error al generar la incertidumbre o la firma. Si el algoritmo empleado es DES el error se encuentra en la clave local. Si es RSA el error es de la clave local cuando se genera firma, o de la clave remota cuando se genera incertidumbre.
* (3): Error al intentar generar clave de la sesión. Si el algoritmo empleado es DES el error concierne a la clave local. Si es RSA la clave errónea es la remota.
* (4): Se produjo un error al obtener la clave remota, bien porque no se suministró en Perfiles o bien porque se produjo un error en la Interfaz de Claves.
* (5): Al procesar una petición o una respuesta del remoto se produce error al intentar descifrar la incertidumbre o la firma. Si se utiliza algoritmo DES la clave errónea es la clave remota. Si se emplea RSA el error es de la clave remota al descifrar firma, o de la clave local al descifrar incertidumbre.
* (6): Al procesar una petición o una respuesta del remoto se produce un error al descifrar la clave de sesión. Si el algoritmo es DES, el error es de la clave remota. Si es RSA, la clave en error es la local.
* (7): El extremo que va a enviar un dato de usuario o Mensaje de Operador, ha tenido un error en el cifrado "on-line".
* (8): El extremo que recibe un dato de usuario o Mensaje de Operador del Remoto ha tenido un error en el descifrado "on-line".
* (9): Al procesar una petición o una respuesta se consigue descifrar la clave de la sesión y la firma, pero o bien no coincide la incertidumbre o bien no coincide la firma (este caso sólo en RSA).

> El error se produce porque las claves de intercambio no coinciden en ambos extremos.
>
> Si se utilizó una Interfaz de Claves, el mensaje debe acompañar los 8 últimos bytes del label empleado.
>
> Si el algoritmo utilizado es DES la clave errónea es la clave local del extremo que genera el mensaje. Si es RSA la clave errónea es la clave local (si se produce error al validar la incertidumbre) o la remota (si se produce error al verificar la firma).

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.editran.onesait.com/documentacion-editran/ibm-editran-v5.3-ims/operacion/anexo-c.-sistema-de-criptografia-en-onesait-editran.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
