mensaje6
S. I. B. - Artículos filtrados por fecha: Marzo 2022

M.Sc.Hebner Mario Olmos Cárdenas 

RNI.96626 

591-76163116 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. 

Abstract. In this article, describes the aplicatión of the Vernam’s encryption, based on this algorithm used an key pseudo-random, to encrypt or decipher any type of file, applying the Object Pascal programming language, is possible show the algorithm operation for didactic pourposes. 

Keywords :PSeudo-random,encrypt,Object Pascal.

Resumen 

Este artículo, es un trabajo que presenta los resultados obtenidos de la implementación del método de cifrado de Vernam, correspondiente a criptografía – tipos y criptografía aplicada. La aplicación de esta investigación arrojó como resultado el cifrado y descifrado de cualquier tipo de archivo, sujeto al lenguaje de programación Objetct Pascal bajo el entorno del Lenguaje Delphi; se implementó un programa que sea capaz de cifrar un archivo y descifrarlo, en base a una clave pseudoaleatoria, de esta manera es posible demostrar dos resultados: por un lado, la vulnerabilidad de la seguridad de los archivos en el sistema operativo y por otro que es concerniente a esta investigación, la aplicación del método Vernam, por medio del programa en ejecución realiza su objetivo, cabe aclarar que este trabajo de investigación, va con fines pedagógicos. 

Palabras.Clave:Pseudoaleatorio,Cifrado,Object Pascal 

1 Antecedente 

En 1917 Gilbert S. Vernam, nativo de Broklyn e ingeniero del MIT, trabajaba en los laboratorios de AT&T, diseñó un dispositivo criptográfico para comunicaciones telegráficas basado en los 32 códigos Baudot de los teletipos desarrollados por su compañía. Los códigos Baudot representan los caracteres del lenguaje con cinco elementos que pueden ser el espacio o la marca( el cero y el uno) diseñado para transmisiones telegráficas. Este cifrador, que tuvo una gran aplicación durante la primera guerra mundial, basa su seguridad en el secreto de una clave aleatoria que se supone tan larga como el mensaje y que luego de usarse debería destruirse. Cada carácter M, se representa con 5 bits en código Baudot que suma OR exclusivo con la correspondiente clave ki de una secuencia binaria aleatoria. De esta forma, el cifrador de Vernam genera un flujo de bits de texto cifrado[1].  

Para la operación de descifrado se utiliza el mismo algoritmo por la propiedad involutiva de la operación OR exclusivo : 

2 Problema  

Con la finalidad de realizar pruebas en base a esta técnica de cifrado Vernam, se logró desarrollar un programa a manera de romper la seguridad en el acceso de los archivos, bajo el sistema operativo Windows, dando a lugar la vulnerabilidad de los archivos a la exposición de un programa capaz de cifrarlos y descifrarlos, poniendo a prueba el cifrado de Vernam. Una semejanza en la operatividad a esta investigación, es el conocido malware: “secuestro de datos” o Rasomware, que restringe el acceso a los archivos solicitando un rescate a cambio de quitar la restricción[2].    

Según el preámbulo el problema se determina con la siguiente interpelación. 

¿Cuál es la manera de implementar el cifrado simétrico de Vernam, para vulnerar el acceso a un archivo común, aplicando el lenguaje de programación Object Pascal? 

3 Objetivo  

Comprobar el cifrado simétrico de Vernam para, vulnerar el acceso de un archivo común, aplicando el lenguaje de programación Object Pascal.  

4 Métodos  

Una herramienta importante para alcanzar el objetivo, es  por medio del lenguaje de programación object Pascal de Delphi2. 

De esta manera se diseñó el programa, empleando el desarrollo de aplicaciones rápidas “RAD”3, para obtener una interfaz adecuada.  

5 Desarrollo  

El código se basa principalmente en el cifrado de Vernam, considerando: 

  • Un array de tipo byte con un tamaño de 4096 K, para el tamaño del archivo. 
  • Un archivo Origen, para obtener su contenido  bit a bit, y un archivo Destino para complementar con el cifrado o descifrado. 
  • Una CLAVE pseudoaleatoria, que asegura el conjunto de números aleatorios que se utilizan en ese rango de 232 números pseudoaleatorios, para codificar o decodificar en binario a partir de los 256 carateres del código ASCII. 

Los Pasos a determinarse en el algoritmo son: 

  1. Apertura y lectura de un archivo 
  2. Cargar al Buffer(Array de tipo byte) el conjunto de caracteres correspondientes del archivo. 
  3. Calcular en el proceso repetitivo hasta el tamaño del archivo, en base a la tabla lógica: Tabla 1: Tabla lógica XOR 

    A XOR B 

  4. Obtener en base a la operación XOR, en el Buffer los caracteres codificados o decodificados correspondientes al rango de la clave pseudoaleatoria, dentro de las estructuras repetitivas. 

  5. Escribir el archivo cifrado o descifrado. 

6. Experimentos 

La interfaz comprende tres botones importantes (Abrir, Cifrar y Descifrar); y un grupo de etiquetas para mostrar las propiedades del archivo e información relevante: 

Imagen 1. GUI principal. 

 

6.1 Lectura y cifrado del archivo 

Archivo de texto Prueba1.txt, mostrando el contenido antes de cifrarlo.  

 

Imagen 2 .Archivo abierto con Bloc de notas

Archivo de texto Prueba1 cifrado.4 

 

Imagen 3 .Archivo cifrado, abierto con Bloc de notas 

Experimento con un archivo ImagenPrueba.png, mostrando en el visualizador de Windows. 

Archivo ImagenPrueba.png cifrado, mostrando con el visor de Windows.

 

Imagen 5 . Archivo cifrado en vista previa.

7. Conclusión 

Al comprender la analogía del  cifrado de Verman e implementarlo de manera correcta en el lenguaje de programación; se puede observar la eficiencia del método, en base a las pruebas el programa puede ser capaz de cifrar sin  importar el tipo de archivo, pues como se opera a nivel de bit, los archivos no pierden contenido y tampoco son susceptibles los metadatos del archivo, pues al descifrarlos vuelven a su contenido original, de esta manera la estructura se mantiene. Si el programa se opera de mala manera es posible cifrar archivos del sistema operativo dañando la estabilidad del S.O por completo, es por ello que el trabajo se orienta, más, de manera didáctica. En este sentido las funciones que corresponden al cifrado y descifrado, respectivamente, se exponen en los apéndices I y II  del presente trabajo. 

Apéndice I  

Código del evento del Botón cifrar, que contiene el código fuente aplicando el cifrado de Vernam. 

procedure TForm1.cifrarClick(Sender: TObject); 

procedure Cifra(Ori,Dest: string; CLAVE:integer);   

{ Ori: Ruta y Nombre del Archivo original   

  Dest: Ruta y Nombre del Archivo encriptado }   

const 

     MAXBUFFER        = 4096;  //4k de buffer;

    var 

     Buffer           : array[1..MAXBUFFER] of byte;     

     Origen, Destino  : TFileStream;     

     n, Leidos        : integer;   

     begin 

     Origen 

    := TFileStream.Create(Ori,fmOpenRead+fmShareDenyWrit

    e); 

     Destino :=TFileStream.Create(Dest,fmCreate); 

     RandSeed:=Clave; 

     try 

       repeat 

         Leidos:=Origen.Read( Buffer[1],MAXBUFFER );         

         for n:=1 to Leidos do begin 

           Buffer[n]:=Buffer[n] XOR Random(256); 

         end; 

         Destino.Write(Buffer[1],Leidos);//Escribiendo el archivo       

         until (Leidos < MAXBUFFER); 

     finally       

        Origen.Free;       

        Destino.Free;     

     end;     

        DeleteFile(ori); 

       RenameFile(RUTA+'V'+NOMBRE,ori); 

     end;

begin 

       //Origen , V-Destino    V Vernam 

   Cifra(Archivo,RUTA+'V'+NOMBRE,CLAVE); 

   LMsg.Caption:='Archivo Cifrado'; 

   Limpiar;

end; 

Apéndice II  

Evento del Botón descifrar, que contiene el código fuente. 

Procedure TForm1.descifrarClick(Sender: TObject); 

   procedure Descifra(NombreCifrado: 

string;CLAVE:integer); 

   type 

     ByteBuffer       = array[0..9999999] of Byte; 

   var 

     PByteBuffer      : ^ByteBuffer;      Origen           : TMemoryStream; 

     n                : integer;    begin 

     Origen:=TMemoryStream.Create; 

     try 

       Origen.LoadFromFile(NombreCifrado); 

       RandSeed:=CLAVE;        PByteBuffer:=Origen.Memory;        for n:=0 to Origen.Size do begin 

      //Decodificando según la clave y cargando al puntero asociado al Buffer 

         PByteBuffer^[n]:=(PByteBuffer^[n] xor 

Random(256)); 

       end; 

       Origen.Seek(0,soFromBeginning);     

    finally     

      Origen.Free;     

    end; 

   end;

   begin 

   Descifra(Archivo,CLAVE);    EncriptarClick(Sender); 

   LMsg.Caption:='Archivo Descifrado'; 

   Limpiar;

end;  

Apéndice III 

Mostrando los archivos: Prueba1.txt e Imagenprueba.png cifrados en el Explorador de archivos, se observa por la presentación previa el archivo de imagen no muestra el contenido como corresponde. 

 

Bibliografía 

  1. Aguirre, J.R. Aplicaciones Criptográficas: Libro Guía de la Asignatura Seguridad Informática. Escuela Universitaria de Informática Universidad Politécnica de Madrid . (Enero 1998), pp.180-182. 
  2. Castellote M. y Ruiz de Angeli G. y Podestá A. y Lamperti S.Ransomware:Seguridad, investigación y tareas foresnses. SID, Simposio Argentino de Informática y Derecho. Universidad FASTA, Ministerio Público de Provincia de Buenos Aires, Argentina.(Noviembre 2017).pp.135-148. 
  3. Introducción a la Programación Object Pascal con RAD Studio Delphi XE, Ofimega Academies.(Septiembre 2019).pp 41-42. 
  4. Hernandez, R., Fernandez, C.,Baptista, M. Metodología de la Investigación. México D.F.Mc Graw Hill.W. 2017. 

El contenido y los conceptos emitidos en los artículos son de exclusiva responsabilidad de sus autores y no necesariamente reflejan la posición de la Sociedad de Ingenieros de Bolivia. 

Publicado en Articulo|00a2a2

Autora: Ing. Sarela Valerie Villarroel Herrera. 

World Economic Forum, 2021, analiza en su informe de Riesgos Globales los potenciales riesgos y adversidades derivadas de la incertidumbre actual que enfrentamos y seguramente enfrentaremos en el futuro, en este informe se puede observar que los riesgos globales han transitado de aspectos económicos hacia los ambientales donde cuatro de los siete riesgos más impactantes son ambientales (Ver Figura 1).

 

Figura 1 Principales riesgos globales según nivel de probabilidad 2021. 

       Fuente: World Economic Forum, 2021. 

Esto demuestra la percepción generalizada de que los riesgos ambientales (en especial los climáticos) vienen afectando nuestra manera de vivir. Globalmente, el sector privado y los gobiernos están implementando medidas para reducir los efectos del cambio climático, en línea con el compromiso del acuerdo de París, resaltando la importancia y necesidad de ser gestionados oportunamente para evitar catástrofes futuras. La inacción podría conllevar a una materialización negativa en los próximos años. 

Actualmente, los consumidores han desarrollado una conciencia ambiental consecuente con los problemas que el planeta está enfrentando, prefiriendo estar informados sobre el producto que adquieren y escogiendo el que genere menor impacto en el medio ambiente. Por esta razón, se incrementó la preocupación de las organizaciones por gestionar riesgos ambientales y mitigar los impactos negativos al mínimo posible conduciendo a que las empresas innoven en sus procesos para ser más competitivos y contribuir al desarrollo sostenible del país. 

Una buena opción para introducir innovaciones al Sistema de Gestión Ambiental (SGA) que sean de carácter preventivo, generen soluciones ambientales y beneficios para la organización, es desarrollar estrategias de Producción Más Limpia. 

La Organización de las Naciones Unidas para el Desarrollo Industrial [ONUDI], (s.f) define que la Producción Más Limpia (abreviado como PML), es la aplicación continua de una estrategia ambiental preventiva integrada a los procesos, productos y servicios para aumentar la eficiencia global y reducir los riesgos para los seres humanos y el medio ambiente. 

Las organizaciones mayormente manejan el enfoque de tecnología al Final-del-Tubo direccionando sus esfuerzos de mitigación del impacto negativo ambiental hacia el tratamiento y/o disposición final de sus desechos, siendo una práctica que si bien es eficaz en minimizar el impacto ambiental (si se aplica correctamente), incrementa los costos y no genera utilidades. En cambio, tener un enfoque de PML incrementa la eficiencia en el manejo de recursos, reduciendo costos y aumentando las utilidades de la organización, pero requiere mayor capital de inversión para su implementación (Ver Figura 2). La PML no sólo trata el síntoma, sino que trata de llegar a la fuente del problema para solucionarlo, manteniendo un enfoque de innovación y mejora continua en la organización. 

Denotar que implementar PML también contribuye a los Objetivos de Desarrollo Sostenible (ODS), aumentando la reputación social empresarial de la organización que lo aplique, del que pueden derivar estrategias interesantes hacia prácticas ambientales conscientes. 

Figura 2. Enfoque piramidal de PML vs Tecnología al Final-del-Tubo Fuente: Centro de Promoción de Tecnologías Sostenible [CPTS], 2005. 

REFERENCIAS BIBLIOGRÁFICAS 

Centro de Promoción de Tecnologías Sostenibles. (2005). “Guía Técnica General de Producción más limpia”. [Archivo PDF].  

Organización de las Naciones Unidad para el Desarrollo Industrial. (s.f). 

“Introducción a la Producción más limpia”. [Archivo PDF]. 

World Economic Forum. (2021). “The global risks report 2021”. https://www.weforum.org/reports/the-global-risks-report-2021 

El contenido y los conceptos emitidos en los artículos son de exclusiva responsabilidad de sus autores y no necesariamente reflejan la posición de la Sociedad de Ingenieros de Bolivia. 

Publicado en Articulo|00a2a2
Subir
Utilizamos Cookies para mejorar nuestro sitio web . Al continuar utilizando este sitio web, usted da su consentimiento a las cookies que se utiliza. More details…