# 0xfa队 writeup ## 全同态加密算法介绍 加密算法方面选择了thfe算法,库方面选择了较为成熟的thfe-rs算法库。 ### 算法参数 使用的是默认的算法参数,设置位置在src/bin/enc.rs:117 Message bits: 2位 Carry bits: 2位 噪声分布: TUniform (tweaked uniform) Bootstrap失败概率: ≤ 2^-128 (CPU后端) ## knn算法实现细节 将欧式距离公式拆分: > sum((a-b)^2)=sum(a^2) - sum(2a\*b) + sum(b^2) 减少了密文态的乘法和加法操作 选择上实现了双调排序,将100个距离结果,用最大值填充至128个结果。 然后进行并行排序,最后选择前十个密文。 两个操作都使用了rayon库做多核并行计算 ## 本地测试结果 在本地i9-10920X(12核24线程)情况下,运行时间约9min(4min+5min)