原文已经丢失,以下由archive获取。
密码机制中的秘密值通常是随机串,要求是均匀分布,而且需要时可以 精确再生。而在现实世界中秘密值很难满足这一点,例如,对于类似指纹等的生物特征,并不是均匀分布的随机值,而且每次需要时,也无法精确的再现(指纹都存在一定误差)。用户进行认证最常见的方式是基于Password,短的Password用户容易记忆,但是熵值很低,安全性差;而一些长的密码短语,用户不容易记忆,而且也无法使用均匀分布的随机数。要跨越这种障碍,需要一种方法能将现实中的这些秘密值转换为真正密码系统需要的均匀分布的随机数。这篇介绍的模糊提取器可以达到这一点要求。
模糊提取器?Fuzzy Extractor(FE),允许输入拥有一定的噪声(或者错误),只要输入相近能提取出相同的一个均匀的随机字符串,大体构造如下:
Gen过程:输入w,输出辅助数据P(公开)和均匀随机值R(l比特)。
Rep过程:给定P,输入w’,重新生成均匀随机值R 。
正确性:如果dis(w,w’)<=t,可以重构出精确的R;如果dis(w,w’)>t,对Rec的输出不提供任何保证
安全性:辅助数据P不会泄露R的太多信息;R的分布接近均匀分布。
应用:从w中提取的R可以用作密钥,不过不需要存储,下次使用从w’恢复即可 ?W可以是生物指纹、物理指纹PUF、或者其他密码材料(如用户记得不太清楚的密码短语)等。
安全概略Secure Sketch (SS) ?允许对噪声输入进行精确的重构, ?与FE不同的是,SS是重构出原始输入本身,并不解决非均匀分布问题,SS大体构造如下:
SS过程:输入w,输出s,s可以公开;。
Rec过程:给定s和输入w’(与w接近),可以恢复出w ?。
正确性:如果dis(w,w’)<=t,可以恢复出精确的w;如果dis(w,w’)>t,对Rec的输出不提供任何保证 。
安全性:s不会泄露w的太多信息。
SS过程实际上是暗含一个FE的,通过如下图所示的方式,通过增加一个强随机数提起前Ext,可以从SS构造FE:
从前面可知,SS和FE都可以重构出之前的一个精确值,但是SS重构的是原始输入本身,不具有均匀随机性,通过增加一个强随机提取器Ext可以从SS构造出FE。 ?这里,x是Ext的随机种子,x和SS(w)可以作为FE的辅助数据。通过可以使用HMAC或者KDF来实现一个Ext功能。
一个简单的例子:使用FE将生物特征等数据用于加解密应用
w、w’对于用户的生物特征输入(如指纹),FE最后生成的均匀随机数种子R可以作为密钥,用于加解密。这样做的一个好处是,不需要存储任何密钥,需要时就可以基于生物特征重构出R。
另一个例子:使用物理不可克隆函数PUF(相当于物理指纹)来生成密钥
参考:
Yevgeniy Dodis, Rafail Ostrovsky, Leonid Reyzin, Adam Smith. Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data. SIAM Journal on Computing, 38(1):97–139, 2008.