APP下载

基于人脸识别的Android手机隐私文本加密软件设计

2018-08-11蒋金刚杨景秀

网络安全技术与应用 2018年8期
关键词:秘钥解密人脸识别

◆蒋金刚 杨景秀



基于人脸识别的Android手机隐私文本加密软件设计

◆蒋金刚 杨景秀

(南京师范大学计算机科学与技术学院 江苏 210023)

本文研究了将人脸识别融入手机隐私文本保护的方法,设计实现了Android手机上基于人脸识别技术的隐私文本加密软件。在加密部分,通过FaceNet模型,获得捕获人脸与预设人脸的特征向量的欧氏距离,与用户输入的密码一起组成秘钥,并生成密文。在解密部分,通过验证人脸后,再次合成秘钥并解密密文。如果人脸或密码有一项无法验证通过,则解密失败。并且本文介绍了FaceNet算法的原理、软件的设计与实现过程以及软件演示。

人脸识别;FaceNet;Android;AES加密算法

0 引言

随着互联网的高速发展,人们的隐私泄露的现象日趋严重,并衍生出庞大的黑色产业链。腾讯社会研究中心与某互联网数据中心联合发布了《2017年度网络隐私安全及网络欺诈行为分析报告》。报告显示,目前网络用户信息泄露大部分都发生在移动端,安卓系统手机应用中,有98.5%都在获取用户隐私权限。虽然绝大多数软件获取用户隐私是出于用户正常使用产品的目的,但也有9%的手机应用存在越界获取用户隐私权限的现象。

在移动互联大背景下,手机端隐私保护显得日趋重要。各种隐私保护软件也应运而生,如“腾讯手机管家”、“360手机卫士”以及“隐私管理大师”等,这些软件虽然一定程度上可以对手机文件进行安全加密管理,保护了个人隐私,但是它们都是使用口令或者手势密码加密,都存在口令或手势易被窃取或破解的威胁。

为此,本文研究了将人脸识别融入手机隐私文本保护的方法,设计实现了Android手机上基于TensorFlow框架的人脸识别隐私文本加密软件。

1 系统设计

本软件分为加密与解密两大功能,如图1所示。

图1 系统设计

在加密部分,通过FaceNet模型,获得输入图片(记为人脸1)与预设人脸的128维特征向量的欧氏距离,与用户输入的密码一起组成秘钥,并生成密文。

在解密部分,通过验证人脸后,将保存的人脸1与预设人脸对比得到的欧氏距离和用户输入的密码再次组合成秘钥,并解密密文。如果人脸或密码有一项无法验证通过,则解密失败。

2 关键技术

2.1 基于 FaceNet方法的人脸识别技术

人脸识别是一项热门的计算机技术,现主要用于身份鉴别并广泛应用于娱乐、信息安全、法律监控等领域,尤其随着现在的移动设备普遍使用,人脸识别也在手机支付、手机隐私保护中得到应用。

本文使用的深度学习框架是TensorFlow,是一个表达机器学习算法的接口,并且是执行算法的实现框架。使用 TensorFlow 表示的计算可以在众多异构的系统上方便地移植,从移动设备如手机或者平板电脑到成千的GPU计算集群上都可以执行[1],被广泛应用于语音、图像识别等多项深度学习领域。

在本软件设计中采用的人脸识别技术为FaceNet,它主要使用了深度卷积网络,通过直接学习从人脸的图像到欧几里德空间上的距离,其中的距离直接对应于面部相似度。

图2 Facenet模型结构[5]

本文采用如上图2所示的模型结构,在批量输入后进行卷积层处理,经过L2的特征归一化,得到特征表示,然后再基于这个特征计算三元组损失。

前期利用CNN(卷积神经网络)处理人脸图像。主要通过多个卷积层、池化(降采样)层以及归一化层对人脸图像进行特征的提取。

卷积层通过若干个滤波器与输入的二维特征平面进行卷积运算提取得到数据的显著性特征,产生特征映射图[2]。

池化层根据图像局部相关性的原理,对图像进行子采样,可以减少计算量,同时保持图像旋转不变性[3]。池化常用的运算一般有:最大池化(MaxPooling)、均值池化(MeanPooling)、高斯池化和可训练池化。该方法使用最大池化。

之后L2归一化层,主要是将之前提取的特征进行归一化处理,幅度归一化到同样的范围。通过欧几里德距离之和我们来判断人脸的相似度。

在上述处理后,所有图像的特征都会被映射到一个超球面上,接着再去优化这些特征。这里我们采用了三元组损失函数(triplet loss)训练网络。

图3 卷积神经网络结构

使用三元组数据训练,使得相同身份之间的特征距离要尽可能的小,而不同身份之间的特征距离要尽可能的大[2]。最后进行人脸验证时候,只需要直接计算倒数第二层的隐层输出的 128 维向量的距离,大大提升了识别率。

triplet loss目标函数:

图4 优化结果

使用FaceNet方法,我们可以将人脸对比得到的欧式距离和用户输入的密码组合作为秘钥,来进行加密与解密。

2.2 基于FaceNet和AES算法的文本加密过程

输入人脸图片与预设人脸的128维特征向量的欧氏距离,与用户输入的密码一起组成秘钥,通过AES算法进行加密;解密过程中,将保存的人脸与预设人脸对比得到的欧氏距离和用户输入的密码再次组合成秘钥,通过AES算法进行解密。

AES(Advanced Encryption Standard,高级加密标准)是对称加密算法中最流行的算法之一,它集安全性、效率、可实现性及灵活性于一体[4]。

以图5和图6两张人脸为例。设左边人脸为用户人脸,右边人脸为程序预设人脸,两者的欧氏距离为1.290687,由此以1290687和用户输入的密码,两者结合作为秘钥的一部分,并根据程序特定的规则,将其补充至128bit数据,对文本进行加密,然后将两者的欧氏距离存在本地。

图5 人脸1

图6 预设人脸

实验中以图7用作解密人脸。图7和图6计算得到的欧式距离小于设定的阈值,则读取存于本地的原对比结果的欧氏距离,组合用户输入的密码,获取秘钥,解密密文。

若两者欧式距离大于设定的阈值,则解密失败。

图7 人脸2

3 软件实现

3.1 环境搭建

本文针对的平台是Android,这是目前在便携式设备中得到广泛使用的一种的开放源码的移动操作系统。本文的开发环境是Android Studio,开发语言是JAVA。为了完成后续TensorFlow Lite的相关开发,需要安卓Android Studio 3.0版本,并且确保Android SDK的版本大于26,NDK版本大于14。

本文使用TensorFlow作为框架。为此,使用Anaconda3为其创建一个Python 3.5的TensorFlow虚拟环境,并在此环境中基于谷歌开源项目FaceNet进行开发。

对FacenNet模型的调用有两种方式,一种是在线调用,识别过程在服务器中进行;一种是离线调用,模型集成进软件中。在线调用可以使软件占用空间小,对手机性能要求小,但是需要联网操作;离线调用占用空间较大,且对手机性能有一定的要求。

对于离线调用情况,需要先对模型进行集成。桌面端生成的TensorFlow模型文件无法直接在移动端使用,需要先转换成.tflite文件使用TensorFlow Lite工具进行集成。需要使用上一步生成的图模型文件(.pb)和变量文件(.chpt),利用freeze_graph工具生成包含神经网络结构和权重系数信息的frozen graphdef文件。再使用toco工具生成最后的tflite文件,即可在Android平台使用TensorFlow生成的模型。

本文采用在线调用方式。

3.2 实现与实验演示

下面为软件演示过程:

在如图8所示的软件界面中输入信息“你好”,输入密码为223,使用图5人脸1进行加密,经过加密算法得到密文1ebc281be36522f9b781fdf3b092040d,如图9所示。

图8 加密前

图9 加密后

解密时,选取加密时的同一个人的另一张人脸进行解密,这里选取图7人脸2,同时输入密文和正确的密码,解密成功如图10所示。

图10 解密成功

图11 解密失败

如果密码或人脸验证不通过,则会提示“认证失败”,如图11所示。

4 结束语

本文主要介绍了使用TensorFlow完成了人脸识别算法并且结合文本加密技术来实现对 Android系统的移动设备进行隐私保护的软件设计及实现过程。

本软件由于将人脸识别和AES加密算法相结合,给用户隐私信息提供了双重保障。同时FaceNet模型具有较高的识别准确率,可有效保护用户个人私密信息。

在现阶段,人脸识别进行文件或文本加密受到更多人的重视和欢迎,本文设计实现的软件在完善后能够得到更广泛的应用。

[1]黄文坚,唐源.TensorFlow实战[M].北京:电子工业出版社,2017.

[2]F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. arXiv preprint arXiv:1503.03832,2015.

[3]LeCun Y,Bottou L,et al.Gradilent-based learning applied to document recognition.Proceeding of the IEEE,1998.

[4]Gu jiu-Xiang,Wang Zhen-Hua,Jason Kuen,et al.Recent Advances in convolutional neural networks. arXiv:1512.07108v5,2017.

[5]吴世忠, 祝世雄, 张文政等译.Bruce Schneier.应用密码学——协议,算法与C源程序[M].北京:机械工业出版社, 2014.

猜你喜欢

秘钥解密人脸识别
解密“热胀冷缩”
人脸识别 等
ETC秘钥国产化升级改造方案设计与实现
解密“一包三改”
揭开人脸识别的神秘面纱
干细胞开启未来大健康的“秘钥” 专家与媒体面对面活动走进中源协和—山西省干细胞基因工程有限公司
炫词解密
基于Unity 3D的产品秘钥二维码实现
基于类独立核稀疏表示的鲁棒人脸识别
基于二元多项式与中国剩余定理的多秘密分享方案