非可換 NTRU タイプ暗号を試す
最近話題の 置換付きベクトル係数多項式 を使った非可換構造を利用して、NTRU タイプの暗号を試してみました。
この暗号は、従来の NTRU と同じ考え方ですが、係数がベクトルで非可換な掛け算を持つため、CSP や右イデアル所属問題に基づく安全性を狙えます。
概要
- 係数: GF(P)^N のベクトル
- 多項式の積: アダマール積 + 置換 σ 作用
- 非可換性: vec_hadamard_mul と σ の作用により、一般に AB ≠ BA
- 置換の条件: 復号安定性のため、単一のループ置換(全成分を循環)を使用
- 右割り: 高次から低次に順番に vec_hadamard_inv を使って Q を復元
ポイント
-
非可換性
- アダマール積とループ置換の組み合わせで順序依存性が生まれる
-
復号安定性
- ループ置換なら右割りで Q を確実に復元できる
-
NTRU タイプの構造
- G/F を H として公開、F を秘密にして復号
-
拡張可能性
- N, P, MAX_DEG を変えて難易度や安全性を調整可能
💡 まとめ:
- ループ置換+非ゼロ係数のベクトル多項式で、非可換 NTRU タイプ暗号が構築可能
- 実験用に簡単な C 実装も用意済み
- これをベースに安全性評価・応用研究が可能
- コードはこちら