2026-04-04
量子コンピューターが実用化されても使える公開鍵暗号を実現する、オープンで量子セーフなライブラリ liboqs-js を試してみました。


鍵が長い!
電子署名用のアルゴリズム「ML-DSA-44 (Dilithium2)」で、公開鍵が1312byte、秘密鍵が2560byte、電子署名が2420byte。
鍵共有ではなく鍵合意方式のアルゴリズム「ML-KEM-768 (Kyber768)」で、公開鍵が1184byte、秘密鍵が2400byte、カプセルが1088byte。
楕円曲線暗号Curve25519では、公開鍵、秘密鍵共にたった16byteでした。
とはいえ、GB級の通信をサクサク行う現代。大きすぎるオーバーヘッドでもないので、そろそろ併用が始まってもいい頃。


「code4fukui/e2ee-liboqs」

liboqs-jsをforkして、ビルドして、dist/ をGitHub Pagesで公開して使いやすくしました。ドキュメントに記述ある通り、実験実装なので、実用化するのには向きません。

また、ハッシュ関数や、共通鍵暗号は、現状のアルゴリズムのままでも今のところ量子コンピューターには耐えられる見込みとのこと。

クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS