Estoy utilizando la biblioteca de criptografía Javascript de Stanford y me gustaría obtener más información al respecto.
1.) Tengo un texto ASCII y una clave aleatoria de 128 bits. Quiero concentrarme en esas dos cosas, así que convierto el texto ASCII en hexadecimal y luego en BitArray.
Ejemplo: var text="kheil" ; var textHex=asc2hex(text);var textBitArray= sjcl.codec.hex.toBits(textHex);
Obtengo el siguiente BitArray: 1802003817,8797904961536
.
Lo que me preocupa es el último número, ¿por qué es más largo? Es más que un número de 32 bits. Con algún texto ASCII, está bien que obtenga un BitArray con números de 32 bits, pero con algunos otros recibo este tipo de sufijo, ¿es normal? Y si lo concaten con un número aleatorio: -96822511,1783357814,2009621896,-1425360948
, obtengo: 1802003817,1828338331,292178913,1987561573,-2002056521,8795220606976
, lo cual no es una buena concatenación, ¿no? Supongo que el texto no es un múltiplo de 32 bits, pero ¿cómo obtener una buena BitArray para cualquier texto?
2.) También para calcular una clave aleatoria de 128 bits Yo uso sjcl.random.randomWord (4,0), ¿es una función eficiente calcular una clave aleatoria? Leí en alguna parte que no debería usar 0 como paranoia, o es necesario llamar a startCollector () para obtener la entropía. Estoy un poco confundido acerca de eso, ¿podría alguien explicarme eso?
¡Gracias!