万能指纹创建——DeepMasterPrints论文解读

论文地址:DeepMasterPrints: Generating MasterPrints for Dictionary Attacks via Latent Variable Evolution

文章基于GAN网络生成一个可以匹配最多数指纹的指纹图像,再使用潜在变量进化生成用于字典攻击的万能指纹(DeepMasterPrint)。

文章提出了一种新的方法:Latent Variable Evolution(LVE),LVE方法有两步:

  1. WGAN算法训练一个generator来生成高质量指纹图像。
  2. 用协方差自适应调整的进化策略CMA-ES进化指纹:在网络的latent variable里(generator的输入向量)找到影响最好的DeepMasterPrint(能匹配很多指纹图像的指纹)的离散变量,从而获得万能指纹。CMA-ES python实现

CMA-ES是一种可以处理非线性和非凸问题的鲁棒方法。基于协方差矩阵,CMA-ES算法评估每一个变量对效果的影响。每一次迭代过程:

  1. 都基于协方差矩阵创建一个新的样本(指纹)。如果变量A和变量B根据协方差矩阵被发现对效果影响的相关性很强,那么新的样本中,会将A和B设置成相关的。
  2. 使用新的样本去评估,算法去学习成功样本的分布,然后更新协方差矩阵。

CMA-ES是一种适用于复杂 real-valued domain的优化算法。

文章在两个指纹dataset上做了测试,并且使用了多个不同的指纹匹配器(指纹识别系统里的匹配)。

3.1 Fingerprint Generator

  1. 使用WGAN算法训练了两个生成器网络,一个使用电容传感器扫描的指纹数据集训练,另一个使用墨水印章的指纹数据集。
  2. 2个网络使用Wasserstein loss function和RMSProp优化方法来训练,学习率设置为0.00005.
  3. 生成器都是使用minibatch gradient descent来训练,每个batch 64个图像和64个latent variable vector。每个生成器迭代120,000次,更新generator两次中间会更新5次discriminator。
  4. 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)来寻找潜在空间。文章阐述了使用进化算法的原因:

  1. 进化算法不需要梯度,因此是一个理想的黑盒优化方法。指纹的匹配器只会反馈有多少特征匹配了或者匹配结果如何,并不会说明结果是如何获得的。即没有梯度信息能表明哪一个pixel of DeepMasterPrint是影响最大或最小的
  2. LVE方法获得的匹配得分表达的是特征匹配的数量,所以这个匹配得分空间也是不连续的
  3. 由于卷积神经网络的层级性质,latent variables也不是相互独立的。

文章采用了CMA-ES算法,CMA-ES学习了latent variables的协方差矩阵(covariance matrix)。(协方差可以反应变量之间的相关性,当协方差为0时,变量之间线性不相关(注意是没有线性相关性,非线性相关性还是可能存在的);当变量之间独立时,协方差为0。)CMA-ES的核心想法是通过对正态分布 N(m_t,\sigma_t^2C_t) 中协方差矩阵 C 的调整来处理变量之间的依赖关系和scaling。(作者用了3天来遍历每一个指纹。)

寻找最好的latent variable

算法解析:

  1. 先基于指纹数据训练出生成网络G。
  2. 基于X的协方差矩阵采样一个G的输入向量X,论文中该向量是100维,即有100个影响生成指纹的变量(latent variable)
  3. 按照上图算法的步骤,计算向量X的MatchingScore,matching的过程通过端到端的指纹识别系统完成。
  4. 基于该得分,使用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会增大)。以下是文章攻击成功率表:

猜你喜欢

转载自blog.csdn.net/ygfrancois/article/details/88740783