ランポート署名
秘密鍵のすべての乱数は、十分な長さ(通常、秘密鍵内の1つの乱数と同じ長さ)のシードと暗号論的擬似乱数生成器から生成できる。したがって、シードのみを秘密鍵として保存しておくことができる。乱数は必要な時にシードから再生成すればよい。
同様に、1つのシードと疑似乱数生成器を用いて、多数の鍵ペア(公開鍵と秘密鍵)を作成することもできる。その場合、ランダムアクセス可能な擬似乱数生成器を使用する必要がある。
耐量子計算機安全性を考えるならば、BBS のような古典的な擬似乱数生成器ではなく、耐量子安全なものを使うべきである。
Winternitz署名の圧縮手法を用いると、秘密鍵、公開鍵、署名のサイズを小さくすることができ、その代わり、署名を生成・検証する計算量が大きく増加する。 この圧縮手法では、メッセージの1ビットごとに乱数およびハッシュ値を2つずつ用意する代わりに、メッセージを固定長のチャンクに分割し,チャンクごとに乱数および(多重)ハッシュ値を1つずつ用意する。したがって、チャンクを L {\displaystyle L} ビットとすると、鍵のサイズはオリジナルのランポート署名の鍵サイズに比べて 1 / 2 L {\displaystyle 1/2L} 程度に小さくなり、署名のサイズも 1 / L {\displaystyle 1/L} 程度に小さくなる。署名の生成・検証には、チャンクごとに多重ハッシュを計算する必要があり、コストは約 2 L / L {\displaystyle 2^{L}/L} 倍になる 。
さらに、上述のようにハッシュリストを使用して、公開鍵をハッシュ値一つのみに短縮することもできる。(署名サイズは2倍になる。)