# CIFRADO BEN

[[Categoría:Cifrado]]
Algoritmo de cifrado basado en columnas. “Cifrado BEN” Por: Benjamin Cardenas Garcia.
Algoritmo de cifrado basado en columnas de matrices: tenemos varios factores, un factor de cifrado (FC) que es la cifras que hay en el cifrado, y otro factor, los Dígitos (D), que son los valores posibles para crear las combinaciones, como binario; 1 y 0, son 2 cifras, solo que aquí no habrá ceros, es solo números enteros positivos, por ejemplo, para FC=3 y D=3, sería 1, 2, y 3, el número mas grande en los dígitos se llama Digito Mayor(DM), que se necesitara para cifrar, qué juntos dan 27 posibilidades, podríamos aprovecharlo para el abecedario y un guion bajo, (A=111, B=112, C=113, _=333, etc.). Para cifrar se necesita una frase, esta frase puede ser de cualquier longitud, ya que se puede adaptar repitiendo del inicio, por ejemplo, la frase llave BACA. Ahora, se deben crear las matrices, una matriz con el mensaje distribuido en las columnas, las filas serán equivalentes al FC, en este caso 3, entonces se distribuye en columnas de 3 filas, si el mensaje es ABC, la matriz en este ejemplo sería:
[[1 1 1] [1 1 1] [1 2 3]] Matriz de mensaje (MM)
Así se convertirá de letras a matriz, distribuyendo en las columnas, por eso es cifrado basado en columnas. Para cifrar se debe convertir la frase llave igualmente en matriz adaptándola a la longitud del mensaje, esta es la Matriz Llave (MK), por ejemplo, si el mensaje es mas largo que la frase, solo se repite (eg. BACABA). Para cifrar, sumas la matriz del mensaje con la matriz de la llave adaptada, y el resultado, ya que puede que algunos números superen los dígitos de cifrado (C), por ejemplo en este caso, que sean arriba del 1, 2, 3, (eg. 4, 6, etc.), se le resta el Dígito Mayor (DM), pero solo si es mayor, así que aquí se debe cumplir la función de la matriz de adaptación (MA), que esta se crea, poniendo en cada lugar o el Dígito Mayor (DM), o 0, depende del valor del lugar en el mensaje cifrado inapto (MCI), siguiendo la condición: Si el número en esa posición es mayor al DM, se coloca el DMen esa posición en la MA. Si el número es menor que al DMse pone 0 en esa posición en la MA.
Una vez se crean estas matrices, se hace la operación:
MCI - MA = MC (Restar la Matriz de Adaptación a la Matriz Cifrada Inapta)
Una vez realizada esta resta, la matriz resultante es la Matriz de Mensaje Cifrado (MC).
Descifrar
Para descifrar mensajes; se realiza la operación inversa, usando la matriz llave.
Se toma la Matriz de Mensaje Cifrado (MC) y restándole la Matriz Llave (MK). Esta operación nos puede llegar a dar números negativos, esta Matriz Descifrada Inapta (MDI) no sigue los dígitos. Así que ahora se usa una Matriz de Adaptación de Descifrado (MAD) que sigue la regla: Si el número en la posición es igual o menor a 0 se coloca el DM en esa posición. Si el número es mayor a cero (igual o mayor a 1) se coloca 0 en esa posición.
Ahora, para descifrar, se realiza la operación inversa que se usó en la operación de adaptación para el cifrado, por lo tanto, usamos la suma:
MDI + MAD = MMD (Matriz de Mensaje Descifrado) (Sumamos la Matriz Descifrada Inapta (MDI) y la Matriz de Adaptación de Descifrado (MAD) y esto nos da la Matriz de Mensaje Descifrado (MMD)
Ahora que sabes cifrar y descifrar, definiremos mejor como funciona la conversión de texto plano a números y de números a distribución en columnas.
Diccionario
Ahora debemos definir un diccionario, este es totalmente libre, a excepción de que debe tener ciertos dígitos (no 0) y que todos los valores no puede superar ni esos dígitos ni el número de cifras, con esto me refiero, si tienes del 1 al 4, todas tus combinaciones de diccionario deben ser con los números del 1 al 4, y ser de las cifras que tú definas (eg. del 1 al 4 y con 3 cifras, dando en total 64 posibilidades). El diccionario debe usarse en su totalidad de posibilidades, porque si tienes un valor y no tienes un símbolo asociado a este, será un simple número, claro que se puede usar así, y ya que sea descifrado estará asociado a un símbolo existente en el diccionario, pero la idea es que todo el diccionario esté ocupado y todos los valores asociados para garantizar la seguridad. El diccionario es independiente de todo lo demás, por lo cual debe guardarse y almacenarse de manera segura y accesible. Todo está basado en este diccionario, por ejemplo, si ahí dice que la A es 111, entonces al ponerla en la matriz sería:
[[1] [1] [1]] Matrices
Las matrices se crean distribuyendo las letras horizontalmente en las columnas y estas van hacia abajo, como gracias a las características del diccionario todos sus valores tienen las cifras del FC, entonces la cantidad de filas es el FC. Por lo tanto, cada letra/valor ocupa una columna y se lee de izquierda a derecha. Para convertir de la matriz a los valores asociados, o a texto plano, solo es leer columna por columna y transcribir de arriba hacia abajo en texto plano los números o directamente asociarlos a letras, esto permite que los mensajes se puedan tanto almacenar en matrices, en texto plano y números, ya que puedes tener un número grande, pero siempre sabrás que se divide en grupos de la cantidad de cifras del FC.
Los mensajes cifrados, como descifrados o llaves, y otros conceptos mencionados anteriormente en matrices, tienen su equivalente en Mensaje Cifrado (MC), Mensaje Descifrado (MD), Mensaje Llave (MK), que se pueden representar tanto en los símbolos alfanuméricos asociados en el diccionario o los mismos valores asociados a estos, por lo tanto, sería el valor en letras o números.
El punto de este cifrado es facilitarlo para el ser humano, al no usar división modular, ni exponenciación, y otras operaciones complejas de realizar a mano, y al solo usar sumas, restas y lógica, este algoritmo de cifrado es amigable con el ser humano y las operaciones a mano sin calculadora. Es práctico y sencillo tanto como eficiente y seguro, al ser un cifrado simétrico se necesita discreción al tener conocimiento de la palabra clave, pero esto es parte de todo cifrado simétrico.
Algoritmo de Cifrado (conclusiones)
Es una mezcla entre el Cifrado de Hill, el Cifrado de Vigenere y mi toque práctico y algorítmico. La diferencia es que en esos se usa la división módulo, y el punto de mi cifrado es facilitar las operaciones para poder hacerlo práctico y eficiente en circunstancias donde no tienes una calculadora, computador o dispositivo inteligente a la mano.
Es un tipo de cifrado asimétrico basado en diccionario, palabra clave y adaptado a matrices.
El estándar para el correcto y eficiente funcionamiento de este cifrado es FC=3, ya que con esto abarcamos todo el abecedario, incluso incluyendo la Ñ, sin tener tantos valores como para no poder asignarle letras y con la facilidad de los cálculos a mano. Este solo ofrecería las letras en mayúscula, y no números, pero es el punto perfecto entre lo práctico y lo complejo.
Los números se podrían encriptar como posiciones, esto se indicaría en el mensaje, por ejemplo, si el mensaje es “Esta es mi número” Seguido de letras sin sentido, sabrás que la posición de cada letra significaría un número, así el diccionario puede extenderse a otros contextos.
Este cifrado todavía no tiene nombre, pero podría ser Cifrado Basado En Columnas, o Cifrado Basado En Diccionario, cuando encuentre un nombre y tenga una explicación mas clara, lo publicaré.
Honorario y sincero agradecimiento a los pioneros de la criptografía, Lester S. Hill y Blaise de Vigenère, ya que sus contribuciones fundamentales han sido la base de este trabajo.
Ejemplo de Cifrado
Diccionario: A-111, B-112, C-113, D-121, E-122, F-123, G-131, H-132, I-133 ,J-211 ,K-212, L-213, M-221, N-222, O-223, P-231, Q-232, R-233, S-311, T-312, U-313, V-321, W-322, X-323, Y-331, Z-332, _-333.
Mensaje a cifrar: Hola Palabra clave: Key
Proceso de cifrado:
Matriz Mensaje (MM): [[1 2 2 1]
Matriz Llave (MK): [[2 1 3 2]
Matriz Cifrada Inapta (MCI = MM + MK): [[3 3 5 3]
Matriz de Adaptación (MA): [[0 0 3 0]
Matriz Cifrada Final (MC = MCI - MA): [[3 3 2 3]
Resultado del cifrado: MC Texto: STJX MC Números: 311 312 211 323
Ejemplo de Descifrado
Mensaje a decifrar: STJX Palabra clave: Key
Proceso de descifrado:
Matriz Cifrada (MC): [[3 3 2 3]
Matriz Llave (MK): [[2 1 3 2]
Matriz Descifrada Inapta (MDI = MC - MK): [[ 1 2 -1 1]
Matriz de Adaptación de Descifrado (MAD): [[0 0 3 0]
Matriz de Mensaje Descifrado (MMD = MDI + MAD): [[1 2 2 1]
Resultado del descifrado: MD Texto: HOLA MD Números: 132 223 213 111