ENCRIPTACION

ENCRIPTACION





 La encriptación es el proceso para volver ilegible información considera importante. La información una vez encriptada sólo puede leerse aplicándole una clave.



Se trata de una medida de seguridad que es usada para almacenar o transferir información delicada que no debería ser accesible a terceros. Pueden ser
contraseñas, nros. de tarjetas de crédito, conversaciones privadas, etc.



Para encriptar información se utilizan complejas fórmulas matemáticas y para desencriptar, se debe usar una clave como parámetro para esas fórmulas.

El texto plano que está encriptado o cifrado se llama criptograma.



Aclaración: encriptación vs. cifrado



Se prefiere el uso de la palabra "cifrado" en lugar de "encriptación", debido a que esta última es una mala traducción del inglés encrypt.


Dos Procedimientos de Encriptación

La Encriptación tiene dos elementos: Un mensaje, y una clave privada de acceso entre el emisor y el receptor, con la cual se puede descifrar el mensaje. El procedimiento de encriptación produce un mensaje o archivo cifrado. Presento dos procedimientos escritos en Visual Basic, catalogados como verdaderas maneras de encriptación.



Modelo EncryptionString

EncryptionString, es un clásico sistema el cual toma el mensaje y una clave del usuario, y a través de una combinación de estos dos parámetros se produce una cadena codificada. Mantengo la explicación original del método:


Texto a codificar:         ENCRYPTION
Caracteres del Texto:      E   N   C   R   Y   P   T   I   O   N
Códigos ASCII:             69  78  67  82  89  80  84  73  79  78
Contraseña KEY:            K   E   Y   K   E   Y   K   E   Y   K
Caracteres de KEY:         75  69  89  75  69  89  75  69  89  75
Suma de Códigos ASCII:     144 147 156 157 158 169 159 142 168 153
En caracteres:                “   œ      ?   ©   Ÿ   ?   ¨   ™

Texto codificado:          “œ?©Ÿ?¨™ 
El modo para usar la función EncryptionString es el siguiente:
'//Codifica
TextoCodificado = EncryptString(TextoOriginal, Contraseña, ENCRYPT)

'//Decodifica
TextoOriginal = EncryptString(TextoCodificado, Contraseña, DECRYPT)
La ventaja de esta técnica es que es muy flexible de usar e intuitiva. Sin tener la máxima seguridad, es muy segura. Escribir un programa para encriptar archivos resulta bastante simple por aquello de la contraseña. No ocurre lo mismo con el siguiente procedimiento: ChrTran.

El código de EncryptionString es el siguiente:

DefInt A-Z
Option Explicit

'//For Action parameter in EncryptString
Public Const ENCRYPT = 1, DECRYPT = 2

'---------------------------------------------------------------------
' EncryptString
' Modificado por Harvey T.
'---------------------------------------------------------------------
Public Function EncryptString( _
UserKey As String, Text As String, Action As Single _
) As String
Dim UserKeyX As String
Dim Temp     As Integer
Dim Times    As Integer
Dim i        As Integer
Dim j        As Integer
Dim n        As Integer
Dim rtn      As String

'//Get UserKey characters
n = Len(UserKey)
ReDim UserKeyASCIIS(1 To n)
For i = 1 To n
UserKeyASCIIS(i) = Asc(Mid$(UserKey, i, 1))
Next

'//Get Text characters
ReDim TextASCIIS(Len(Text)) As Integer
For i = 1 To Len(Text)
TextASCIIS(i) = Asc(Mid$(Text, i, 1))
Next

'//Encryption/Decryption
If Action = ENCRYPT Then
For i = 1 To Len(Text)
j = IIf(j + 1 >= n, 1, j + 1)
Temp = TextASCIIS(i) + UserKeyASCIIS(j)
If Temp > 255 Then
Temp = Temp - 255
End If
rtn = rtn + Chr$(Temp)
Next
ElseIf Action = DECRYPT Then
For i = 1 To Len(Text)
j = IIf(j + 1 >= n, 1, j + 1)
Temp = TextASCIIS(i) - UserKeyASCIIS(j)
If Temp < 0 Then
Temp = Temp + 255
End If
rtn = rtn + Chr$(Temp)
Next
End If

'//Return
EncryptString = rtn
End Function




No hay comentarios:

Publicar un comentario