Genera las funciones necesarias para crear claves, firmar y verificar, dada una lista de parámetros (bits=256 y largo=28 en el ejemplo).
La lista de valores bits y largo disponibles se puede obtener usando...
Todo algoritmo OTS (one-time signature) permite firmar un sólo mensaje por clave. Firmar más de un mensaje con la misma clave rompería la seguridad.
Se debe crear una clave nueva por cada mensaje a firmar.
Permiten ajustar el tamaño de la firma y comprimir las claves. Se pueden elegir libremente, son independientes del nivel de seguridad.
largo: Entero que determina el tamaño de la firma, en cantidad de hashes. Ejemplo, si largo=28 y el tamaño de un hash es de 256 bits, la firma ocupa 28 * 256 bits = 7168 bits. Valores disponibles:
comprimido: Si comprimido=True (verdadero), reduce el tamaño necesario para almacenar las firmas privada y pública, a expensas de un pequeño incremento del costo computacional. La clave privada se deriva de una semilla privada (seed) usando una función hash en modo contador, y la clave pública se comprime en un check público usando otra función hash.
Modifican distintos aspectos del nivel de seguridad del algoritmo. Ante la duda, dejar los valores por defecto.
bits: Cantidad de bits usados para representar el mensaje que se va a firmar. Por ejemplo, con bits=256 se pueden representar hasta 2256 mensajes distintos. Valores disponibles:
consal: Si consal=True (verdadero), usa una sal para aleatorizar las funciones hash. Aumenta la seguridad contra ataques basados en la paradoja del cumpleaños (en inglés, 'birthday attacks') y contra ataques a objetivos múltiples. La sal se genera al momento de crear las claves y se publica junto con la firma.
upbits: Tamaño de salida de la función hashUp, usada para aplicar ups desde el nivel bajo (clave privada) hasta el nivel alto (clave pública).
cbits: Tamaño de salida de la función hash usada para comprimir la clave pública.