2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

符号ベース暗号方式 HQC を理解する(概要編)

Posted at

突貫で書いてしまった部分もあるので、大いに誤りを含む可能性があります。誤字・脱字レベルでも構いませんので、ご指摘ください。
また、予告なしに内容の加筆や構成の変更を行うことがありますが、読みやすくするためのものですので、ご容赦ください

はじめに

2025年3月11日に、NIST PQC 標準化プロジェクトにおいて、符号ベース暗号方式である HQC が Selected Algorithms となりました

NIST PQC Standardization Process | HQC Announced as a 4th Round Selection

他にも書かないといけない記事がいくつかあるのですが、HQC が Selected Algorithms に掲載されたことが嬉しすぎて、ついこちらの記事から投稿することにしました
*と書いているのに、半年以上経ってしまった理由として、元々2025年2/19時点での仕様書とコードを参考に記事を書いていたのですが、8/22にガラッと変わってしまい、諸々を書き直していたら遅くなったという・・・

今回の連載は↓の4つで構成されます:

  • 概要編←イマココ
  • 基本編
  • 設計編
  • 発展編

本記事では、下記の仕様書の概要を掴むことを目標にします

2025年8月22日版の仕様書

この仕様書の構成は、次のようになっています:

1章: イントロダクション
2章: 前提(符号理論の基礎知識や HQC 方式で使われる計算問題など)
3章: HQC の仕様(HQC の設計)
4章: パラメタや暗号文・鍵サイズ
5章: 性能評価
6章: 安全性分析(HQC による KEM が IND-CCA2 安全性を満たすことの証明だったり、既存の攻撃手法だったり)
7章: 利点と制限

正直なところ、4章・5章・7章は読めばわかるかな〜という感じなので、軽く触れる程度で

この仕様書を本連載では↓で分割して扱います:

  • 概要編(1章, 7章): HQC 方式の概要を掴む
  • 基本編(2.1節, 2.2節, 2.3節, 2.4節): HQC 方式の基礎知識を整理する
  • 設計編(3.1節, 3.2節, 3.3節, 3.4節, 3.5節, 6.3節): HQC 方式の中身を理解する
  • 発展編(4章, 5章, 実装): HQC 方式の実装や最新動向を追う

安全性証明もやりたいんですが・・・時間かかりそうなので、今回は割愛します
*HQC による PKE と KEM の2つの構成があるのですが、今のところは、PKE のみ解説しようと思っています(長くなりすぎるかもしれないので・・・そうでもないなと思ったらどちらも)

また、設計編・発展編では、

2025年8月22日版の実装Repo

を元に中身のコードも概説します

このうち

src/ref/hqc.c
src/ref/reed_muller.c
src/ref/reed_solomon.c

は、設計編でも軽く解説し、残りは、発展編で解説する予定です
*例えば、Reed-Solomon 符号の Decode アルゴリズムでは、多項式乗算が用いられるのですが、それを工夫するための Toom-Cook アルゴリズムや Karatsuba アルゴリズムは、発展編に回します(positive-cyclic であることが分かればよいので)

ちなみに、CRYPTREC のガイドラインに軽く HQC の解説があるので、もし興味のある方はそちらも
CRYPTREC 暗号技術ガイドライン(耐量子計算機暗号)2024年度版

全然関係ないですが、旧版と今ではどちらの仕様書が読みやすいかと聞かれたら、今の方がかなりまとまっていて読みやすいと思います
*とはいえ、旧版の仕様書とめちゃ異なる解説もいくつか(2.4節で PKE と KEM の定義とか)あり、全部消さないといけないものもあったのがもったいなかったです・・・
*旧版の雰囲気を見たい方は、以下のアーカイブをご覧ください、めちゃ有名人ばかりですね(HQC の原案では、Reed-Muller 符号や Reed-Solomon 符号は使われておらず、別の符号を使っていたらしいですね)

N. Aragon, P. Gaborit, G. Zemor: ``HQC-RMRS, an instantiation of the HQC encryption framework with a more efficient auxiliary error-correcting code'', arXiv preprint arXiv:2005.10741, 2020.

HQC 方式の概要(1章・7章)

HQC とは、符号ベース暗号方式の1つで、Hamming Quasi-Cyclic の略称です

Hamming 距離に基づいた符号であり、Parity 検査行列と呼ばれる符号に関する行列が Quasi Cyclic(準巡回とか擬巡回)ということです

HQC 方式を用いる利点(7.1 節)として

  • 使用している符号の隠れ構造(hidden structure)を復元する攻撃に対して耐性(immunity)がある
  • 暗号文や鍵サイズが小さい(同じ符号ベース暗号方式の Classic McEliece と比較して、って感じですかね)

が挙げられていて、制約(7.2 節)として

  • PKE 方式は、暗号化率(encryption rate)が低い
  • ML-KEM(Kyber)と比べて、暗号文や鍵サイズが大きい もうそれは仕方ないのでは

などがあるそうですね

まとめ

次回から数式がたくさん出てくるので Zenn へ移行します Qiitaの数式表示は(以下略)

久しぶりに耐量子計算機暗号のみのトピックを書いた気がします
準同型暗号の方で CKKS や TFHE の連載記事を書いていますが、あれらほどは深くは書けないかなぁという感じです

途中で紹介した CRYPTREC の暗号技術ガイドラインよりは詳しく・・・おっと誰かが


今回の内容はここまでです.ここまでご覧になってくださった方々ありがとうございます!

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?