¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
System i5 iSeries AS400 Recursos. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Noticias tecnológicas
Documentos
Encriptar datos en el iSeries AS400

Mantener la información segura y oculta a la vista de curiosos es una labor bastante compleja.

Si quieres adentrarte en este mundo te recomiendo que leas bibliografía al respecto. En cualquier buscador de la red podrás encontrar referencias al respecto.

En la bibliografía podrás ver métodos que van desde el mítico Skytale pasando por transposición, traslación, empaquetamiento, alfabetos reducidos, eliminación de espacios en blanco, algoritmos RSA y un largo etcétera.

Para una cuestión doméstica y sin entrar en grandes complejidades,la manipulación de bits es una opción aceptable y bastante sólida. Todo depende del grado de ofuscamiento que quieras aplicar.

Algunas sugerencias pueden ser la combinación de las siguientes.

Complemento a 1. (NOT): 00001111 -> 11110000
Complemento a 2. (NOT y sumar 1) 00001111 -> 11110001
Rotación de bits a la derecha / izquierda

Una idea puede consistir en fraccionar el mensaje en porciones que se traten en un bucle y por cada caracter en la porción aplicar n rotaciones a la izquierda o a la derecha, o cpl1, cpl2, o lo que se te ocurra...
Las posibilidades son enormes.

Caracter 1: 10001110 -> 00011101 (1 rotación a la izda de 1 bit)
Caracter 2: 00101011 -> 10101100 (2 rotaciones a la izda de 1 bit)

Este es un pequeño ejemplo en RPGILE que espero os sirva como orientación.

     
     h fixnbr(*zoned)                                           
*
d MSG S 1 DIM(50)
*
d letra s 1
*
d longitud s 2s 0
*
c *entry plist
c parm prmopc 1
c parm prmmsg 50

c if %parms=2

c movea prmmsg MSG
c eval longitud = %LEN(prmmsg)
c z-add 1 rotar 1 0
*
c 1 do longitud i 2 0
c testb '0' MSG(i) 30
c testb '1' MSG(i) 31
c testb '2' MSG(i) 32
c testb '3' MSG(i) 33
c testb '4' MSG(i) 34
c testb '5' MSG(i) 35
c testb '6' MSG(i) 36
c testb '7' MSG(i) 37
*
C BITON '01234567' LETRA
*
c select
c when prmopc = 'C' or prmopc='c'
c exsr cifrar
c when prmopc = 'D' or prmopc='d'
c exsr descifrar
c endsl
*
c add 1 rotar

c if rotar > 3
c eval rotar = 1
c endif

C EVAL MSG(I) = LETRA
*
c enddo
*
c movea msg prmmsg

c endif
*
c move *on *inlr

*-----------------------------------------------------------------
* Cifrado de mensajes
*-----------------------------------------------------------------
c cifrar begsr
*
c select
c when rotar = 1
*
* una rotación a la izda
c 30 bitoff '7' letra
c 31 bitoff '0' letra
c 32 bitoff '1' letra
c 33 bitoff '2' letra
c 34 bitoff '3' letra
c 35 bitoff '4' letra
c 36 bitoff '5' letra
c 37 bitoff '6' letra
*
c when rotar = 2
*
* dos rotaciones a la izda
c 30 bitoff '6' letra
c 31 bitoff '7' letra
c 32 bitoff '0' letra
c 33 bitoff '1' letra
c 34 bitoff '2' letra
c 35 bitoff '3' letra
c 36 bitoff '4' letra
c 37 bitoff '5' letra
*
c when rotar= 3
*
* Tres rotaciones a la dcha
c 30 bitoff '3' letra
c 31 bitoff '4' letra
c 32 bitoff '5' letra
c 33 bitoff '6' letra
c 34 bitoff '7' letra
c 35 bitoff '0' letra
c 36 bitoff '1' letra
c 37 bitoff '2' letra
*
c endsl
*
c endsr

*****************************************************************
* descifrar
*****************************************************************
c descifrar begsr
*
c select
c when rotar = 1
*
* una rotación a la dcha
c 30 bitoff '1' letra
c 31 bitoff '2' letra
c 32 bitoff '3' letra
c 33 bitoff '4' letra
c 34 bitoff '5' letra
c 35 bitoff '6' letra
c 36 bitoff '7' letra
c 37 bitoff '0' letra
*
c when rotar = 2
*
* dos rotaciones a la dcha
c 30 bitoff '2' letra
c 31 bitoff '3' letra
c 32 bitoff '4' letra
c 33 bitoff '5' letra
c 34 bitoff '6' letra
c 35 bitoff '7' letra
c 36 bitoff '0' letra
c 37 bitoff '1' letra
*
c when rotar= 3
*
* tres rotaciones a la izda
c 30 bitoff '5' letra
c 31 bitoff '6' letra
c 32 bitoff '7' letra
c 33 bitoff '0' letra
c 34 bitoff '1' letra
c 35 bitoff '2' letra
c 36 bitoff '3' letra
c 37 bitoff '4' letra
*
c endsl
*
c endsr

Puedes ver el fuente aquí
Documento cedido por Carlos Vega

Marzo 2003. Modificado 8 de abril de 2003

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 
Subir a la parte superior de la web
 

 

NUESTRA COMUNIDAD EN
ÚNETE Y.... ¡¡ PARTICIPA !!
Dossiers técnicos iSeries y AS400
- Seguridad
- Alta disponibilidad.
Nuestros links favoritos
- Tendencias tecnologías de la información
Expertos en tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware y shareware para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049