uwots (ots)

Crear funciones

Genera las funciones necesarias para crear claves, firmar y verificar, dada una lista de parámetros (bits=256 y largo=28 en el ejemplo).

from uwots_ots import uwots_ots
crearclaves, firmar, verificar = uwots_ots (bits=256, largo=28)

La lista de valores bits y largo disponibles se puede obtener usando...

import uwots_valores
lista_bits = uwots_valores.bits_disponibles ()
lista_largos = uwots_valores.largos_disponibles ()

print (lista_bits)
# ... 96, 112, 128, 160, 192, 224, 256, 320, 384, 448, 512

print (lista_largos)
# 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, ...

Crear claves

priv, pub = crearclaves ()

Firmar

mensaje = 'abc'
firma, n, sal = firmar (mensaje, priv=priv)

Verificar

v = verificar (mensaje, firma, n, sal, pub=pub)

print (v)
# True

¡Importante!

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.

Parámetros ajustables

Permiten ajustar el tamaño de la firma y comprimir las claves. Se pueden elegir libremente, son independientes del nivel de seguridad.

Valores por defecto

largo = 28
comprimido = True

Parámetros de seguridad

Modifican distintos aspectos del nivel de seguridad del algoritmo. Ante la duda, dejar los valores por defecto.

Valores por defecto

bits = 256
consal = True
upbits = bits # 256
cbits = min (512, 2 * upbits) # 512