论文地址:DeepMasterPrints: Generating MasterPrints for Dictionary Attacks via Latent Variable Evolution
文章基于GAN网络生成一个可以匹配最多数指纹的指纹图像,再使用潜在变量进化生成用于字典攻击的万能指纹(DeepMasterPrint)。
文章提出了一种新的方法:Latent Variable Evolution(LVE),LVE方法有两步:
- 用WGAN算法训练一个generator来生成高质量指纹图像。
- 用协方差自适应调整的进化策略CMA-ES进化指纹:在网络的latent variable里(generator的输入向量)找到影响最好的DeepMasterPrint(能匹配很多指纹图像的指纹)的离散变量,从而获得万能指纹。CMA-ES python实现
CMA-ES是一种可以处理非线性和非凸问题的鲁棒方法。基于协方差矩阵,CMA-ES算法评估每一个变量对效果的影响。每一次迭代过程:
- 都基于协方差矩阵创建一个新的样本(指纹)。如果变量A和变量B根据协方差矩阵被发现对效果影响的相关性很强,那么新的样本中,会将A和B设置成相关的。
- 使用新的样本去评估,算法去学习成功样本的分布,然后更新协方差矩阵。
CMA-ES是一种适用于复杂 real-valued domain的优化算法。
文章在两个指纹dataset上做了测试,并且使用了多个不同的指纹匹配器(指纹识别系统里的匹配)。
3.1 Fingerprint Generator
- 使用WGAN算法训练了两个生成器网络,一个使用电容传感器扫描的指纹数据集训练,另一个使用墨水印章的指纹数据集。
- 2个网络使用Wasserstein loss function和RMSProp优化方法来训练,学习率设置为0.00005.
- 生成器都是使用minibatch gradient descent来训练,每个batch 64个图像和64个latent variable vector。每个生成器迭代120,000次,更新generator两次中间会更新5次discriminator。
- G的结构中使用deconvolution会造成难以训练(blocky artifacts),所以改用unsampling。
文中提到已有的一些研究已经表明GAN无法拟合整个数据的分布,所以WGAN生成的指纹也必定只能适用于部分指纹。
3.2 Searching the Space of Latent Variables
为了创建DeepMasterPrint,需要找到latent variables的最优值,generator的输入被称作latent variables(潜在变量)的原因是latent variable对输出的影响只能通过观察输出的图像来理解。文中使用了100个latent variables作为输入,所以最优解实际上是一个100维空间中的一个点。LVE生成的这些高得分的点,实际上就是指纹的“基因”。
LVE可以使用任意的进化算法(或其他的全局优化器,如Particle Swarm Optimization)来寻找潜在空间。文章阐述了使用进化算法的原因:
- 进化算法不需要梯度,因此是一个理想的黑盒优化方法。指纹的匹配器只会反馈有多少特征匹配了或者匹配结果如何,并不会说明结果是如何获得的。即没有梯度信息能表明哪一个pixel of DeepMasterPrint是影响最大或最小的。
- LVE方法获得的匹配得分表达的是特征匹配的数量,所以这个匹配得分空间也是不连续的。
- 由于卷积神经网络的层级性质,latent variables也不是相互独立的。
文章采用了CMA-ES算法,CMA-ES学习了latent variables的协方差矩阵(covariance matrix)。(协方差可以反应变量之间的相关性,当协方差为0时,变量之间线性不相关(注意是没有线性相关性,非线性相关性还是可能存在的);当变量之间独立时,协方差为0。)CMA-ES的核心想法是通过对正态分布 中协方差矩阵 的调整来处理变量之间的依赖关系和scaling。(作者用了3天来遍历每一个指纹。)
寻找最好的latent variable:
算法解析:
- 先基于指纹数据训练出生成网络G。
- 基于X的协方差矩阵采样一个G的输入向量X,论文中该向量是100维,即有100个影响生成指纹的变量(latent variable)
- 按照上图算法的步骤,计算向量X的MatchingScore,matching的过程通过端到端的指纹识别系统完成。
- 基于该得分,使用CMA-ES算法更新协方差矩阵,然后回到第二步进行迭代。(该过程用于更新生成更好的X的策略,G在该过程中不再更新)
指纹底库(identity,注册时候的输入,表示身份)由12个partial fingerprint组成,只要12个局部指纹有一个和generator生成的指纹匹配成功了就算是匹配成功。作者使用了多个指纹识别系统来做匹配:VeriFinger 9.0 SDK,Bozorth3 matcher,Innovatrics IDKit 5.3 SDK.
3.3 Experimental Setup
手机是最容易被DeepMasterPrint攻击的,因为他们的传感器很小。
作者设置FMR指标为1%、0.1%、0.01%,FMR在有人脸和图像清晰情况下(实际识别过程中可能没有采集到人脸,该次数不计入FAR)相当于FAR,理论上,FMR设置越大系统越不安全,FMR越小可能影响用户体验(相应的FRR会增大)。以下是文章攻击成功率表: