研讀文獻《On generalized separating hash families》,對分離散列函數族(SHF)的類型定義與實例判定存在困惑。給定矩陣示例,為何其類型為 `{1,1,1}` 而非 `{2,2}`?
一個 SHF(N; k, {w₁, w₂, ..., wₜ}, v) 是一個 N×k 矩陣,元素取自 v 個符號集合,滿足:
對於任意 不相交 的列子集 `C₁, C₂, ..., Cₜ`,其中 `|Cᵢ| = wᵢ`,存在至少一行,使得該行在 `C₁, C₂, ..., Cₜ` 上的符號兩兩互不相同(即各子集在該行的符號集合互不相交)。
行1: 0 0 1 1
行2: 0 1 0 1
行3: 0 1 1 0
行4: 1 0 0 1
行5: 1 0 1 0
行6: 1 1 0 0
此矩陣為 SHF(6; 4, {1,1,1}, 2)(即任意 3 列可分離)。
檢查列分組 `C₁={1,2}`, `C₂={3,4}`:
行1: C₁={0}, C₂={1} → 分離 ✅
行2: C₁={0,1}, C₂={0,1} → 符號集合相交 (0,1) ❌
行3: C₁={0,1}, C₂={1,0} → 相交 ❌
行4: C₁={1,0}, C₂={0,1} → 相交 ❌
行5: C₁={1,0}, C₂={1,0} → 相交 ❌
行6: C₁={1,1}, C₂={0,0} → 分離 ✅
雖存在分離行(行1、行6),但定義要求「對於任意分組」均存在分離行。若選 `C₁={1,3}`, `C₂={2,4}`,可能無分離行。因此不滿足 `{2,2}` 類型。
| 類型 | 含義 | 強度 |
|---|---|---|
| {1,1,1} | 任意 3 列兩兩分離(3-獨立) | 強 |
| {2,1} | 任意 2 列為一組、1 列為另一組可分離 | 中 |
| {2,2} | 任意 2+2 列分組可分離 | 弱 |
組數越多、組大小越小 → 條件越嚴格 → 矩陣構造越難。`{1,1,1}` 是 3-獨立雜湊,`{2,2}` 只是 2-獨立的擴展。
類型向量 `{w₁,...,wₜ}` 精確描述了「需同時分離的列組數」與「每組列數」。示例矩陣滿足「任意 3 列可分離」(`{1,1,1}`),但不保證任意 2+2 分組可分離,故非 `{2,2}`。理解 SHF 核心在於「任意分組下的存在性量詞順序」。