模糊提取器(Fuzzy Extractor)

本文介绍了模糊提取器的概念及其在从噪声随机源中提取高质量密钥的应用。探讨了如何利用密码技术和纠错机制从生物特征等噪声源中产生均匀分布且可精确再生的随机比特,以及在此基础上提出的鲁棒性模糊提取器的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

我们将产生具有一定熵的随机比特的源称为“随机源”(Randomness Source)。如果“随机源”所产生的字符串不但在密钥空间中“均匀分布”,还可以“精确再生”。那么,“随机源”就可以用于产生密码算法的加密密钥和解密密钥。然而,在现实生活中,这样均匀随机且精确再生的随机源几乎没有。现实中确实有很多带有噪音的随机源,有很高的(最小)熵,但不是均匀随机的,而且每次的采样结果虽然相近,但都有一些小的偏差(噪音)。例如:

● 人的生物信息,如指纹、声纹、虹膜等;

● 电子元器件的噪声(不可克隆函数);

● 量子信息。

我们能否将这些有噪随机源通过密码技术转变为好的随机源,使其产生“均匀分布”且“精确再生”的随机比特?如果可以,那么这些随机源就可以为我们所用,并为密码系统提供源源不断的、可重现的随机数。

模糊提取器

2004 年,Dodis 等人提出了模糊提取器(fuzzyextractor)的概念,旨在解决这一问题。

模糊提取器 FE=(Gen,Rep) 有两个算法,生成算法和再生算法。提取器具体描述如下,请参见图 1。

● Gen → (P,R). 生成算法 Gen 输入字符串w( 噪音随机源的一次采样 ),输出一个字符串 R和一个公开的帮助串 P;

● Rep(w',P) → R'. 再生算法输入 w'( 噪音随机源的另一次采样 ) 和公开帮助串 P,输出一个字符串 R'。

正确性:正确性要求是如果两次采样 w 和 w'的距离足够近,那么 R'=R,即 R 可以精确再生;

安全性:安全性要求是如果随机源有足够多的熵,那么 R 是均匀随机的。辅助数据P不会泄露R的太多信息;R的分布接近均匀分布。

应用:从w中提取的R可以用作密钥,不过不需要存储,下次使用从w’恢复即可 ?W可以是生物指纹、物理指纹PUF、或者其他密码材料(如用户记得不太清楚的密码短语)等。

Dodis 等人所提出模糊提取器构造依赖两个构件,即(普通的,不是模糊的)提取器(extractor)和安全梗概(secure sketch)。提取器 [13] 可以将不均匀的字符串转化成均匀的字符串,可以使用 universal function 来实现;而安全梗概(secure sketch)致力于纠错,因此可以用线性纠错码来实现。

可重复提取的模糊提取器

利用模糊提取器,用户可以从自己的生物信息中提取安全的密钥进行加解密,且不需要保存密钥。在享受了上述便利之后,用户可能会希望可以从自己的生物信息中提取多个安全可靠的密钥应用在不同的机构,不同的场景下。然而

● 人的生物信息是唯一的,不能被更改或者创造;

● 模糊提取器保证了从一个噪音随机源中提取一次密钥的安全性。而从相同的随机源中提取多个不同的密钥的安全性是无法保证的。 [1] 

可重用鲁棒模糊提取器

为了解决上述问题,Boyen 等 [4] 在 2005 年提出了鲁棒性模糊提取器 (robust fuzzy extractor)的概念。模糊提取器的鲁棒性有两种安全性定义,即“应用前”鲁棒性和“应用后”鲁棒性。应用前的鲁棒性保证敌手在只看到公开帮助字符串 P 的情况下,提交一个篡改的,模糊提取器的恢复算法只能输出 ,不能再产生出一个错误的 。然而在实际应用中,如果用户在某些密码方案中使用 R,那么 R的部分信息甚至是所有的信息会泄露给敌手。在这种情况下,“应用前”鲁棒性不再适用。“应用后”鲁棒性可以解决这一问题。应用后鲁棒性保证了敌手在看到 P 和 R 的情况下,提交一个篡改的 p',模糊提取器的恢复算法只能输出 ⊥ [1]  。

### Fuzzy Extractor 工作原理 Fuzzy extractor 是一种用于生物特征识别系统的密码学工具,旨在解决生物特征数据固有的噪声和变化问题。该技术允许从不精确的数据中提取稳定且可重复使用的密钥。 #### 错误容忍机制 当输入存在微小差异时,fuzzy extractor 能够生成相同的输出密钥。这种特性对于处理像指纹这类具有细微变动的生物特征尤为重要[^1]。具体来说: - **编码阶段**:给定一个初始读取的生物特征样本 \( R \),通过特定算法生成一对输出——一个稳定的密钥 \( K \) 和辅助信息 \( P \)。 - **解码/再生阶段**:之后,在获取另一个相似但不一定完全相同的新样本 \( R' \) 后,利用之前存储下来的辅助信息 \( P \),即使新旧样本间存在一定误差,也能重新计算出原始密钥 \( K \)。 为了实现上述功能,fuzzy extractor 需要满足两个核心属性: - **可靠性 (Reliability)**:只要两次采集到的生物特征足够接近,则应能成功恢复同一个密钥; - **安全性 (Security)**:即便攻击者获得了辅助信息以及多次尝试猜测不同的生物特征值,也无法推断出实际使用的密钥; 此外,考虑到不同应用场景下的需求差异,设计有效的模糊抽取器还需要考虑诸如效率、鲁棒性和适应范围等因素。 ```python def fuzzy_extractor_encode(biometric_sample): """模拟编码过程""" key, helper_data = generate_key_and_helper_data(biomatic_sample) return key, helper_data def fuzzy_extractor_decode(new_biometric_sample, stored_helper_data): """模拟解码过程""" recovered_key = recover_key_from_new_sample( new_biometric_sample, stored_helper_data ) return recovered_key ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值