Sphincs+

耐量子コンピューター暗号のための電子署名スキーム
What is SPHINCS?

SPHINCS+ とは

SPHINCS+ は、量子コンピュータ攻撃からデータを保護する、ステートレスなハッシュベースの署名スキームです。耐量子コンピューター暗号(PQC)ソリューションのひとつであり、主な利点としては、署名が高速でそのサイズが小さいことと、他のスキームや旧バージョンの SPHINCS より強力であることが挙げられます。米国商務省標準化技術研究所(NIST) が 2017 年に実施した耐量子コンピューター暗号プロジェクトで提案されたうちのひとつであり、2022 年、NIST が推奨する PQC のひとつに選定されました。

SPHINCS+ のベース SPHINCS

SPHINCS は 2015 年に初めて提案されました。1 秒間に数百のメッセージに署名でき、署名の総サイズは 41 KB、公開鍵と秘密鍵のサイズはそれぞれ 1 KB です。署名のセキュリティに存在するギャップを埋めることが開発の目的でした。その土台にあるのは、量子コンピュータが登場したときに現在の署名スキームで生じる以下のような問題点です。

RSA と ECC は小型で高速だが、Shor のアルゴリズムを使用する量子コンピューターで破ることができる。

格子ベースの署名は、定量的なセキュリティレベルが明確ではなく、量子コンピュータに対して脆弱。

他変数の二次式署名は短く高速だが、長期的なセキュリティが保証されていない。

コードベースの署名はサイズの大きい鍵が伴い、量子コンピュータ攻撃を防ぐとなると鍵はさらに大きくする必要がある。

ハッシュ署名は高速で鍵も小さく、量子コンピュータ攻撃にも耐えるが、ステートフルである。

サイズ、量子コンピュータ攻撃に対する防御、ステートに関するこうした欠点を解決するために、SPHINCS+ を設計した提案者は、ステートレスでハッシュベースの、量子コンピュータ攻撃に対しても長期的に 2128 のセキュリティを確保できるスキームを考案しました。

強力な耐量子コンピューター暗号に向けて SPHINCS を改良

SPHINCS の改良を目指して、設計者はこの分野の専門家と協力し、署名のサイズを抑えながら署名の速度を上げられる新しいバージョンを開発しました。この新しいバージョンが SPHINCS+ であり、次の 3 種類が作成されました。

SPHINCS+ -SHA3(SHAKE 256 を使用する)

SPHINCS+ -SHA2(SHA2 を使用する)

SPHINCS+ -Haraka(Haraka 短入力ハッシュ関数を使用する)

Improving SPHINCS for stronger PQC

実現する改良点:

pqc-spincs-icon-1

マルチターゲット攻撃に対する保護

pqc-spincs-icon-2

ツリーレス WOTS+ 公開鍵圧縮

pqc-spincs-icon-3

少数回署名スキームである HORST から FORS に移行

pqc-spincs-icon-4

検証可能なインデックス選択

こうした変更の結果、SPHINCS+ は NIST セキュリティレベル 1 に当たる 8 KB から同レベル 5 に当たる 30 KB までの署名サイズを短時間で処理できます。

NIST による承認

2016 年、米国商務省標準化技術研究所(NIST)が提案を公募し、耐量子コンピューター暗号スキームの提出を要請しました。ラウンド 1 の公募締め切りだった 2017 年 11 月 30 日までに、数十の手法が提案され、検討されました。

SPHINCS+ は、PQC に向けて承認された標準として NIST が推奨した 4 つの手法のひとつであり、電子署名用として推奨されたなかでは、わずか 3 つのうちのひとつです。