一种微服务用户身份认证的快速人脸识别方法与流程

文档序号:32056836发布日期:2022-11-04 21:51阅读:99来源:国知局
一种微服务用户身份认证的快速人脸识别方法与流程

1.本发明涉及图像加密领域,具体涉及一种微服务用户身份认证的快速人脸识别方法。


背景技术:

2.随着互联网的快速发展,应用程序变得越来越复杂,需要处理的任务也越来越多。过去单一应用程序已经无法满足日益增进的技术需求,微服务架构应运而生,微服务架构将单一应用程序划分成一组独立的单元,单元之间互相协调、互相配合,为用户提供最终服务,为确保线上服务的安全性,越来越多的服务采用人脸识别进行身份认证,因此微服务架构集成了人脸图像采集单元及人脸识别单元,经过用户授权同意后,人脸图像采集单元采集人脸图像传输至人脸识别单元进行身份认证。
3.由于人脸图像属于个人隐私信息,在人脸图像采集单元采集人脸图像传输至人脸识别单元的过程中,若直接将人脸图像进行传输可能会被窃取,造成用户的隐私泄露,因此需要对传输过程中的人脸图像进行加密;现有的加密方法,如aes加密方法、dna编码,在进行加密时会将相同的像素点或图像内容加密为相同的结果,难以打破像素之间的关联性,容易被统计分析攻击从而破解,且现有的利用dna加密方法得到的密钥复杂度低,对于加密内容的安全性保护较差。
4.由此,本发明为了打破像素之间的关联性,增加密钥的复杂度提出了一种微服务用户身份认证的快速人脸识别方法。


技术实现要素:

5.为了解决人脸图像传输过程中对人脸图像的保密性,同时加密图像能够打破像素之间的关联性,具有更复杂的密钥,本发明提供了一种微服务用户身份认证的快速人脸识别方法,包括:采集人脸图像,获取人脸图像的待加密数据;建立加密字典,获取编码密钥和运算密钥;获取待加密数据的碱基串作为初始碱基串;对初始碱基串中相邻两个碱基的二进制数进行运算,获取待加密数据的第二层碱基串;对第二层碱基串进行运算,获取待加密数据的下一层碱基串;重复迭代直至当前层碱基串中仅有一个碱基;获取加密碱基串及其在加密字典中的二进制数,将二进制数转化为十进制得到加密图像;将加密图像进行传输,人脸识别单元对解密后的图像进行识别。
6.根据本发明提出的技术手段,首先基于dna编码规则建立加密字典,并根据待加密图像设定编码密钥和运算密钥,从而能够通过传统的dna编码方式将待加密数据转化为不同的碱基串,能够打破像素之间的关联性,进一步对碱基串进行多层迭代运算,每一层碱基的运算结果都根据密钥的不同位数确定,最终得到多层碱基串,并选取每一层碱基串中的一个碱基进行加密,显著提高了加密的随机性和复杂性,能够保证图像在传输过程中的安全性。
7.本发明采用如下技术方案,一种微服务用户身份认证的快速人脸识别方法,包括:
8.获取人脸图像,将人脸图像中每个像素点的像素值转化为二进制,得到人脸图像的待加密数据。
9.根据dna编码规则建立加密字典,利用混沌映射分别获取待加密数据的编码密钥和运算密钥,获取编码密钥的每一位数值在加密字典中对应的dna编码规则。
10.根据编码密钥的第一位数值对应的dna编码规则获取待加密数据的初始碱基串。
11.利用运算密钥对初始碱基串中相邻碱基对应的二进制数进行运算,得到运算后的二进制数;获取运算后的二进制数在编码密钥的第一位数值对应的dna编码规则中对应的碱基串,作为待加密数据的下一层碱基串。
12.获取待加密数据的下一层碱基串在编码密钥的下一位数值对应dna编码规则对应的二进制数,利用运算密钥对下一层碱基串中相邻碱基对应的二进制数进行运算。
13.获取运算后得到的二进制数在编码密钥下一位数值对应的dna编码规则中对应的碱基串,依次迭代,直至待加密数据的下一层碱基串为一个碱基。
14.根据待加密数据的每一层碱基串获取加密碱基串,获取加密碱基串在编码密钥的最后一位数值对应dna编码规则的二进制数,将加密碱基串的二进制数转化为十进制,得到人脸图像中每个像素点的加密像素值,根据每个像素点的加密像素值得到加密图像。
15.将加密图像传输至人脸识别单元进行解密,并对解密后的图像进行对比识别。
16.进一步的,一种微服务用户身份认证的快速人脸识别方法,利用混沌映射分别获取待加密数据的编码密钥和运算密钥的方法为:
17.利用混沌映射获取人脸图像设定长度的混沌序列,混沌序列的范围为[0,1],将混沌序列中每个数乘以8并进行四舍五入取整,将得到的序列作为编码密钥;
[0018]
利用混沌映射获取人脸图像设定长度的混沌序列,混沌序列的范围为[0,1],将混沌序列中每个数乘以4并进行四舍五入取整,将得到的序列作为运算密钥。
[0019]
进一步的,一种微服务用户身份认证的快速人脸识别方法,根据dna编码规则建立加密字典的方法为:
[0020]
利用dna编码将二进制00、11、10、01编码为碱基a、t、g、c;
[0021]
获取每个碱基与对应二进制数的排列组合方式,依次根据每个排列组合方式建立加密字典。
[0022]
进一步的,一种微服务用户身份认证的快速人脸识别方法,利用运算密钥对初始碱基串中相邻两个碱基对应的二进制数进行运算的方法为:
[0023]
获取运算密钥的每一位数字,将1表示为加运算,2表示为减运算,3表示异或运算,4表示同或运算;
[0024]
根据初始碱基串中相邻两两碱基获取运算密钥中对应位数的数字,根据运算密钥中对应数字的运算方式对初始碱基串中相邻两两碱基对应的二进制数进行运算。
[0025]
进一步的,一种微服务用户身份认证的快速人脸识别方法,对运算后得到的二进制数重复进行迭代的方法为:
[0026]
选取运算密钥中对应位数的数字对待加密数据的初始碱基串进行运算,得到第二层碱基串;
[0027]
获取待加密数据的第二层碱基串在编码密钥中第二位数值对应的dna编码规则下的二进制数;从上一层碱基串选取的运算密钥对应位数的数字开始,选取当前层碱基串在
运算密钥中对应位数的数字,对运算密钥进行循环选取;
[0028]
利用运算密钥依次对待加密数据的下一层碱基串进行运算,直至下一层层碱基串中仅包含一个碱基。
[0029]
进一步的,一种微服务用户身份认证的快速人脸识别方法,根据待加密数据的每一层碱基串获取加密碱基串的方法为:
[0030]
获取待加密数据的所有层碱基串在编码密钥中对应位数的数字,对该数字进行模2运算得到二进制串,获取该二进制串的反序二进制串;
[0031]
从待加密数据的最后一层碱基串开始,根据反序二进制串的每一位数字选取上一层碱基串中的碱基;
[0032]
当反序二进制串对应位数的数字为1时,选取上一层右侧的碱基;当反序二进制串对应位数的数字为0时,选取上一层左侧的碱基;
[0033]
依次选取待加密数据的每一层碱基串中的一个碱基,得到加密碱基串。
[0034]
进一步的,一种微服务用户身份认证的快速人脸识别方法,将加密碱基串在加密字典中的二进制数转化为十进制,得到加密图像的方法为:
[0035]
根据编码密钥的最后一位数值在加密字典中对应的dna编码规则,获取加密碱基串在加密字典中对应的二进制数;
[0036]
将加密碱基串的二进制数每8位分为一组,并将每组二进制数转换为十进制,得到每个像素点的加密像素值,根据所有像素点的加密像素值得到加密图像。
[0037]
本发明的有益效果是:根据本发明提出的技术手段,首先基于dna编码规则建立加密字典,并根据待加密图像设定编码密钥和运算密钥,从而能够通过传统的dna编码方式将待加密数据转化为不同的碱基串,能够打破像素之间的关联性,进一步对碱基串进行多层迭代运算,每一层碱基的运算结果都根据密钥的不同位数确定,最终得到多层碱基串,并选取每一层碱基串中的一个碱基进行加密,显著提高了加密的随机性和复杂性,能够保证图像在传输过程中的安全性。
附图说明
[0038]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039]
图1为本发明实施例的一种微服务用户身份认证的快速人脸识别方法结构示意图;
[0040]
图2为本发明实施例的加密字典示意图;
[0041]
图3为本发明实施例中的重复迭代过程示意图;
[0042]
图4为本发明实施例加密碱基串获取方法示意图。
具体实施方式
[0043]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044]
本发明所针对的具体场景为:人脸识别认证过程中,为确保人脸图像传输过程中的机密性,需对人脸图像进行加密,防止用户隐私泄露以及攻击者重放攻击。
[0045]
如图1所示,给出了本发明实施例的一种微服务用户身份认证的快速人脸识别方法结构示意图,包括:
[0046]
101.通过人脸采集单元采集人脸图像,将人脸图像中每个像素点的像素值转化为二进制,得到人脸图像的待加密数据。
[0047]
在经过用户授权同意后,人脸图像采集单元调用摄像头拍摄用户人脸图像,该图像为待加密传输的明文图像,图像大小为m
×
n,图像中每个像素点像素值的范围为[0-255],将像素值转换为八位二进制进行表示,将每个像素点的像素值转换为八位二进制,并展开成1行数据。
[0048]
至此,获取了人脸图像,并将其转换为了二进制数据。
[0049]
102.根据dna编码规则建立加密字典,利用混沌映射分别获取人脸图像的编码密钥和运算密钥。
[0050]
根据dna编码规则建立人脸图像的加密字典的方法为:
[0051]
利用dna编码将二进制00、11、10、01编码为碱基a、t、g、c;
[0052]
获取每个碱基与对应二进制数的排列组合方式,依次根据每个排列组合方式建立加密字典。
[0053]
生物学中dna由碱基a(腺嘌呤)、t(胸腺嘧啶)、g(鸟嘌呤)和c(胞嘧啶)构成,a、t为一对碱基对,g、c为一对碱基对,dna编码是将二进制00、11、10、01编码为碱基a、t、g、c。则一共有8种可能的编码规则,如图2所示。
[0054]
将8种可能的编码规则预先保存在人脸图像采集单元与人脸识别单元,作为人脸图像加密字典。
[0055]
利用混沌映射分别获取人脸图像的编码密钥和运算密钥的方法为:
[0056]
利用混沌映射获取人脸图像设定长度的混沌序列,混沌序列的范围为[0,1],将混沌序列中每个数乘以8并进行四舍五入取整,将得到的序列作为编码密钥;
[0057]
利用混沌映射获取人脸图像设定长度的混沌序列,混沌序列的范围为[0,1],将混沌序列中每个数乘以4并进行四舍五入取整,将得到的序列作为运算密钥。
[0058]
本发明需要对dna编码进行多层加密运算,对每层利用不同的dna编码规则,因此需要获取编码密钥,以便结合编码密钥确定每层的dna编码规则,通过人脸图像采集单元与人脸识别单元事先约定的安全密钥,采用混沌映射的方法,获取一个长度为k1的混沌序列,混沌序列范围为[0,1],将混沌序列中每个数乘以8并进行四舍五入取整,将该序列作为编码密钥,则编码密钥可能的组合有8
k1
种。
[0059]
同理,本方案需要对dna编码进行多层加密运算,对每两个碱基之间采用不同的运算方式,因此需要获取运算密钥,以便结合运算密钥确定每两个碱基之间的运算方式,用1表示加运算,2表示减运算,3表示异或运算,4表示同或运算,通过人脸图像采集单元与人脸识别单元事先约定的安全密钥,采用混沌映射的方法,获取一个长度为k2的混沌序列,混沌序列范围为[0,1],将混沌系列中每个数乘以4并进行四舍五入取整,将该序列作为运算密
钥,则运算密钥可能的组合有4
k2
种。
[0060]
需要说明的是,在用户每次进行人脸识别时,人脸图像采集单元和人脸识别单元共同更新编码密钥和运算密钥。
[0061]
1031.获取编码密钥的第一位数在加密字典中对应的dna编码规则,根据该编码规则获取待加密数据在加密字典中对应的碱基串,作为待加密数据的初始碱基串。
[0062]
现有的dna编码加密方法为采用一种dna编码规则对二进制数进行编码,同时利用不同的dna编码规则对编码结果进行解码,将二进制数转换为另一二进制数,以实现数据的加密,该加密方式采用的两个dna编码规则共有8
×
7=56种组合方式,难以抵抗暴力破解攻击。
[0063]
对于碱基可进行加、减、异或、同或运算,运算方式与二进制运算规则相同,在不同的编码规则下,碱基同一运算方式的运算结果不同,本发明结合dna编码加密方法与碱基运算方法进行dna编码的多层加密运算,提高了加密方法的复杂度与密钥的复杂度,可抗暴力破解攻击。
[0064]
首先利用编码密钥第1位对获取的待加密的二进制数据进行dna编码,编码密钥第1位数字对应如图2中对应序号的编码规则,根据该编码规则将二进制数据编码成碱基串。
[0065]
例如编码密钥为281,待加密的二进制数据为00101110(对应十进制为46),编码密钥第一位数字2对应的编码规则为a=00,t=11,g=01,c=10,根据此规则对二进制数据进行编码得到初始碱基串actc。
[0066]
1032.利用运算密钥对初始碱基串中相邻两个碱基对应的二进制数进行运算,得到运算后的二进制数;获取运算后的二进制数在加密字典中对应的碱基串,作为待加密数据的第二层碱基串。
[0067]
利用运算密钥对初始碱基串中相邻两个碱基对应的二进制数进行运算的方法为:
[0068]
获取运算密钥的每一位数字,将1表示为加运算,2表示为减运算,3表示异或运算,4表示同或运算;
[0069]
根据初始碱基串中相邻两两碱基获取运算密钥中对应位数的数字,根据运算密钥中对应数字的运算方式对初始碱基串中相邻两两碱基对应的二进制数进行运算。
[0070]
对二进制进行dna编码得到的dna串进行多层迭代加密操作,首先进行第一层运算:根据运算密钥对碱基串中相邻每两个碱基之间基于该层的编码规则进行运算,运算得到结果作为第二层的碱基串,若在此过程中,运算密钥长度不够,则对运算密钥从头开始循环。
[0071]
例如运算密钥为13134,dna串为actc,则对于actc每两个碱基ac,ct,tc,在编码规则2(a=00,t=11,g=01,c=10)下分别进行2(减)、3(异或)、1(加)的运算:
[0072]
a-c=00-10=10=c
[0073][0074]
t+c=11+10=01=g
[0075]
其中为异或运算符;为同或运算符,得到第二层的碱基串为cgg。
[0076]
1033.根据编码密钥的第二位数获取待加密数据的第二层碱基串在加密字典中的二进制数,利用运算密钥对第二层碱基串中相邻两两碱基对应的二进制数进行运算,根据运算后的二进制数获取待加密数据的下一层碱基串。
[0077]
利用编码密钥和运算密钥对待加密数据的碱基串进行重复迭代,直至待加密数据的当前层碱基串中仅有一个碱基。
[0078]
利用编码密钥和运算密钥对待加密数据的碱基串进行重复迭代的方法为:
[0079]
选取运算密钥中对应位数的数字对待加密数据的初始碱基串进行运算,得到第二层碱基串;
[0080]
根据编码密钥中第二位数获取待加密数据的第二层碱基串在加密字典中的二进制数;从上一层碱基串选取的运算密钥对应位数的数字开始,选取当前层碱基串在运算密钥中对应位数的数字,对运算密钥进行循环选取;
[0081]
利用运算密钥依次对待加密数据的每一层碱基串进行运算,直至当前层碱基串中仅包含一个碱基。
[0082]
例如编码密钥为281,运算密钥为23134,第二层碱基串为cgg。则该层的编码规则为编码密钥中数字8对应的编码规则,即(g=00,c=11,t=01,a=10),上一层使用运算密钥到第3位为止,本层从运算密钥第4位的数字3开始,对于cgg相邻每两个碱基cg,gg在编码规则8下分别进行3(异或)、4(同或)的运算:
[0083][0084][0085]
得到第三层的碱基串为cc。
[0086]
重复进行运算直到当前层只有一个碱基时停止,例如编码密钥为281,运算密钥为23134,待加密的二进制数据为00101110的碱基串迭代过程如图3所示。
[0087]
104.根据待加密数据的每一层碱基串获取加密碱基串,根据编码密钥的最后一位数获取加密碱基串在加密字典中的二进制数,将加密碱基串在加密字典中的二进制数转化为十进制,得到加密图像。
[0088]
根据待加密数据的每一层碱基串获取加密碱基串的方法为:
[0089]
获取待加密数据的所有层碱基串在编码密钥中对应位数的数字,对该数字进行模2运算得到二进制串,获取该二进制串的反序二进制串;
[0090]
从待加密数据的最后一层碱基串开始,根据反序二进制串的每一位数字选取上一层碱基串中的碱基;
[0091]
当反序二进制串对应位数的数字为1时,选取上一层右侧的碱基;当反序二进制串对应位数的数字为0时,选取上一层左侧的碱基;
[0092]
依次选取待加密数据的每一层碱基串中的一个碱基,得到加密碱基串。
[0093]
对于每一层,仅需保存一个碱基作为密文,因此本发明结合编码密钥获取保存位串,将编码密钥中选择的数字进行模2操作,得到的结果形成一个二进制串,对该二进制串进行反序操作,结合反序二进制串选择每一层需要保存的碱基。
[0094]
可将多层迭代运算的过程看做一个倒着的二叉树,树的最后一层只有一个碱基,此时无需选择,保存该碱基;树的倒数第二层,存在两个碱基,根据反序二进制串第1位的二进制值选择保存的碱基,如值为0,则保存左边的碱基;如值为1,则保存右边的碱基;对于树的上一层,根据二进制串对应位置的值在下一层选择的碱基连接的两个碱基中选择保存的碱基,如值为0,则保存左边的碱基,如值为1,则保存右边的碱基。直到每一层都保存了一个碱基后,将每一层的碱基合成一个碱基串得到加密碱基串。
[0095]
例如编码密钥为281,运算密钥为23134,待加密的二进制数据为00101110的加密碱基串的获取过程如图4所示。
[0096]
对该待加密数据选择的编码密钥281进行模2操作,得到二进制串001,将该二进制串进行反序操作,得到反序二进制串100,对于多层迭代运算第4层(最后一层)保存碱基a;对于第3层(倒数第二层),根据反序二进制串第1位数值1保存右边的碱基c;对于第2层,根据反序二进制串第2位数值0保存第3层选择碱基c所连接的第二层左边的碱基g;对于第1层,根据反序二进制串第3位数值0保存第2层选择碱基g所连接的第二层左边的碱基c,最终得到该待加密数据的加密碱基串为cgca。
[0097]
将加密碱基串在加密字典中的二进制数转化为十进制,得到加密图像的方法为:
[0098]
根据编码密钥的最后一位数在加密字典中对应的dna编码规则,获取加密碱基串在加密字典中对应的二进制数;
[0099]
将加密碱基串的二进制数每8位分为一组,并将每组二进制数转换为十进制,得到每个像素点的加密像素值,根据所有像素点的加密像素值得到加密图像。
[0100]
利用编码密钥281中最后一位数值1在加密字典中对应的编码规则(a=00,t=11,c=01,g=10)获取加密碱基串cgca的二进制数,得到加密后的二进制串01100100。转换为十进制为100,实现了将像素值46加密成了100。
[0101]
105.人脸采集单元将加密图像进行传输,人脸识别单元根据编码密钥和运算密钥对加密图像进行解密,并对解密后的图像进行识别。
[0102]
至此,实现了人脸图像的加密,本发明加密方法的密钥复杂度为8
k1
×4k2
,k1、k2越大,密钥复杂度越大,相较现有dna编码加密密钥复杂度为56的方法,密钥复杂度大大提升,可抵抗暴力破解攻击,同时,本方案加密方法在多层迭代运算倒二叉树中每一层选择保存一个碱基,打破了图像像素点之间的关系,进一步提高了图像的安全性,在每次人脸识别认证时,人脸图像采集单元及人脸识别单元更新加密过程中的编码密钥与运算密钥,可防止攻击者截获密文图像进行重放攻击。
[0103]
人脸识别单元收到密文图像后根据编码密钥及运算密钥对密文图像进行解密:
[0104]
首先将密文图像转换为二进制数据,利用编码密钥最后一位数值对应的编码规则对二进制进行编码,将二进制数据转换为碱基串,根据编码密钥获取每一层的编码规则,利用每一层的编码规则序号模2获取反序二进制串,根据反序二进制串确定碱基串中每个碱基在迭代运算倒二叉树中对应层的位置。
[0105]
结合运算密钥,获取二叉树中每一层相邻位置的运算方式,根据相邻位置的运算方式从最后一层倒着获取每一层的碱基,直到得到第一层的所有碱基。
[0106]
利用编码密钥第一位数值对应的编码规则对第一层的碱基进行解码,获取二进制串,将二进制串每8位分为一组,并转换为十进制,再转换为m
×
n的图像。
[0107]
最后人脸识别单元通过解密后的人脸图像与数据库中的人脸图像进行对比来进行用户身份认证,数据库中的人脸图像为所有已注册本应用程度的用户的人脸图像。
[0108]
根据本发明提出的技术手段,首先基于dna编码规则建立加密字典,并根据待加密图像设定编码密钥和运算密钥,从而能够通过传统的dna编码方式将待加密数据转化为不同的碱基串,能够打破像素之间的关联性,进一步对碱基串进行多层迭代运算,每一层碱基的运算结果都根据密钥的不同位数确定,最终得到多层碱基串,并选取每一层碱基串中的
一个碱基进行加密,显著提高了加密的随机性和复杂性,能够保证图像在传输过程中的安全性。
[0109]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1