AnyankaKeys/Public/doc/es/description.md

2.9 KiB

El proyecto AnyankaKeys, que antiguamente partía de un proyecto para operaciones matemáticas llamado Anyanka, donde se incluía este proyecto, es un proyecto simple para firmar, Hashear y obfuscar información para ayudar a su privacidad, anonimato y seguridad, ambos desarrollados por KyMAN. Es un proyecto cuya ejecución es algo pesada y sirve para blindar, en la medida de las posibilidades tanto de recursos como de conocimientos de su desarrollador, KyMAN.

La idea es sencilla: usar una cadena con valores únicos, ya sea vía Array de enteros positivos o String, la cual condicione la base de trabajo forzada desde un codificador manual. El codificador manual sirve tanto para la codificación como para la decodificación haciendo el camino inverso. Al hacer este cambio de base se usará la propia cadena para determinar dicha base la cual, a la hora de operar de forma divisiva, ésta determinará los 0 del bloque por su módulo, obteniendo como resultado la capacidad de operarse a sí mismo sin un posicionador salvo para el Wise o desplazamiento de base. El Wise se hallará a partir de hallar su potencia base 2, quedando un decimal cuya precisión será suficiente para los trabajos con garantía a 8 bits en un decimal de 16 bits con mantisa a 8 bits.

Ejemplo 1:


[196, 191, 111]

// Codificación

196 / 58
174   3 * 256 + 191 = 
 22   = 959 / 58
 ^^     58    16 * 256 + 111 = 
        = 379   4207 / 58
          348   406    72 / 58
           31    147   58   1
           ^^    116   14   ^
                  31   ^^
                  ^^

[1, 14, 31, 31, 22]

// Decodificación

1 * 58 + 14 = 
= 72 * 58 + 31 = 
  = 4207 / 256
    256    16 * 58 + 31 = 
    1647   = 959 / 256
    1536     768   3 * 256 + 22 = 
     111     191   = 196
     ^^^     ^^^     ^^^

 [196, 191, 111]

Como podemos observar, el mecanismo es sencillo y no depende de un desplazamiento potenciado, sino que con el valor de base se puede llevar a cabo. Las dudas pueden resultar cuando hay 0 en la matriz y coincida valor redondo anterior, pero al trabajar con divisores éstos serán mínimo 1 y por tanto serán operables, dando como respuesta de 0 los restos usados para hacer la nueva matriz migrada a la nueva base.

Por otro lado, la idea es agilizar este proceso en la medida de lo posible pues ya se está viendo que es un proceso pesado al tener que iterar la cadena de Bytes. Para ello ha de tener simplificadas las operaciones en Callbacks por iteración de valor, de esta forma sólo se gestionará un único bucle de iteración y una operación conjunta de todo lo necesario para nuesta finalidad. Para ello, a la hora de codificar, Hashear, firmar o encriptar, es extraer los Bytes de los datos que se introducen y crear una pequeña cabecera que determine qué tipo de dato se está trabajando; por otro lado, también hemos de tener a la inversa a la hora de decodificar y desencriptar, pasando de cada Byte a un Blob o resultado esperado.