发明名称 一种基于生物特征交叉验证的云投票方法
摘要 一种基于生物特征交叉验证的云投票方法,根据生物特征具有唯一性,不可复制,信息采集方便等特点,本方法结合了生物特征提取和图像差值匹配技术以提高电子投票的合法性验证,并在此基础上,运用交叉验证和数字签名技术以保证投票的保密性和防抵赖性。本方法客户端适用于移动智能终端,在保证投票过程安全保密的同时,投票人不再受时间和地理位置的限制,只需要一部能够接入互联网或移动通讯网的移动终端即可进行投票。方法通过云服务的封装和调用以实现组件复用,用户层、云服务器和应用层之间均以REST服务方式交互调用,将共享的计算资源按需提供给对方。本发明安全性高、保密性强、可复用服务资源。
申请公布号 CN105391743A 申请公布日期 2016.03.09
申请号 CN201510957077.2 申请日期 2015.12.18
申请人 浙江工业大学 发明人 陆佳炜;陈烘;肖刚;张元鸣;高飞;李杰
分类号 H04L29/06(2006.01)I;H04L29/08(2006.01)I;G07C13/00(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种基于生物特征交叉验证的云投票方法,其特征在于:该云投票方法包括以下步骤:(1)应用系统TA标注(1.1)应用系统TA通过服务标注SMa向云投票层标注需要使用的云投票层服务;(1.2)TA通过服务标注SMa向云投票层标注自身提供服务的调用地址,TA必须提供三个服务的调用地址且必须是REST服务形式,分别是受评人服务,投票人服务,投票结果服务;(1.3)云投票层通过服务标注SMa接收TA标注的信息并对标注的信息的有效性进行验证,有效性包括TA所需要的服务是否存在以及TA提供的服务是否完整;若验证通过,则通知TA标注成功,并返回标注码TACode,并进行图像处理模块初始化,若验证失败,则返回错误信息;(2)图像处理模块初始化(2.1)TA服务标注成功后,云投票层的图像处理模块即调用TA的投票人服务获取投票人信息,提取投票人与照片映射元组IPD;图像处理模块得到IDP后对其中的&lt;T_pic<sub>i</sub>&gt;进行图像预处理与特征提取,得到的特征为&lt;T_charac<sub>i</sub>&gt;,组成IDC并调用TA的投票人服务将IDC存入TA对应的持久层;(3)用户层路由映射(3.1)用户层通过服务路由SRe向云投票层调用服务,用户层必须携带TACode,该TACode表示该用户需要路由到的TA;(3.2)服务路由SRe通过TACode在服务标注SMa中映射对应的TA,若映射成功则通知用户层映射成功,进行接用户层验证。若映射失败则结束;用户层路由映射成功后,用户即可进行投票,投票过程中,用户层通过Web服务的方式调用云投票层封装的REST服务,投票人发出的所有请求都会被验证模块SS_V拦截,验证模块SS_V对发起请求的用户进行身份和权限认证,在该验证过程中会调用核心服务层的图像处理模块并调用TA<sub>i</sub>的Web服务获得持久层数据TIN,若验证通过再将请求转发至投票模块SS_T,投票模块SS_T的业务逻辑组件在完成其功能的过程中,会调用TA<sub>i</sub>的Web服务获取持久层的数据SIN和TR并进行交互;(4)用户防伪造验证(4.1)用户层映射成功后,自动启动设备摄像头,投票人选择进行拍摄或者退出使用的客户端,投票人无法从本地相册中选取照片,照片拍摄会在一秒之内拍摄三张,组成照片组VT,投票人选择是否上传VT,若选择不上传,则重新进行拍摄;(4.2)投票人选择上传VT后,用户层通过服务路由SRe调用云投票层封装的REST服务apFaceVerification(),该方法向云投票层发起人脸验证请求,云投票层SS_V模块收到请求后获取VT,调用faceVerification()进行人脸验证,faceVerfication()会调用云投票层SS_G模块的图像差值匹配对VT进行验证;(4.2.1)云投票层SS_G模块的图像差值匹配会调用calHSV()计算照片的HSV,通过调用hasBrightSpot()来检查局部亮点,若有局部亮点,则云投票层判定非正常情况,验证失败;若验证成功,则进行RGB差值计算;(4.2.2)云投票层SS_G模块的图像差值匹配调用calRGB()计算照片的RGB,将三张照片的RGB做差值运算,差值运算若结果若为零,则表示三张照片完全一样,云投票层判定非正常情况,验证失败,否则,验证通过;(5)用户人脸特征验证(5.1)VT验证通过后,云投票层SS_V模块随机抽取照片组V3的一张照片,调用云投票层SS_G模块的getCharac()进行预处理并提取特征T_charac<sub>i</sub>;(5.2)云投票层SS_T使用提取的特征T_charac<sub>i</sub>调用getTId(),该方法会通过服务标注SMa调用TA封装的REST服务,该服务会在持久层中查找对应的IDC;若没有找到,表示该投票人不是合法的投票人。若能找到则返回给云投票层的SS_T;(6)生成并发送投票码(6.1)若能成功查找到IDC,就唯一确定投票人T_id<sub>i</sub>,云投票层SS_T的投票码模块调用generateTCode()为T_id<sub>i</sub>生成投票码T_code<sub>i</sub>,组成ICC;(6.2)云投票层SS_T模块调用sendTCode(),sendTCode()通过T_id<sub>i</sub>在单元信息对象DPM中查找对应的T_mail<sub>i</sub>,将T_code<sub>i</sub>以邮件形式发送至T_mail<sub>i</sub>;(7)用户层登陆验证(7.1)用户层的投票人在进行登录时需要输入从邮箱获取的投票码T_code<sub>i</sub>,并且拍摄一张人脸照片T_pic<sub>i</sub>,用户层的客户端会自动从客户端系统中获取T_UUID<sub>i</sub>,生成登录验证对象IPD,通过服务路由SRe调用云投票层的REST服务apLogin()提交登陆请求;UUID是指在一台机器上生成的数字;(7.2)云投票层SS_V模块调用getIPD()获取T_pic<sub>i</sub>,并且调用SS_G进行图像预处理与特征提取,得到图像特征T_charac<sub>i</sub>;调用isMatching(),isMathcing()通过用户提交的T_code<sub>i</sub>与得到的T_charac<sub>i</sub>在ICC中查找对应的T_id<sub>i</sub>,若找到,则表示投票人合法,调用generateICU()将T_UUID<sub>i</sub>加入到合法UUID队列,生成ICU;T_UUID<sub>i</sub>加入到合法UUID队列后,在之后的流程中,投票人请求查看受评人信息和提交选票都自动提交发出请求的客户端的UUID,SS_V进行查询合法性验证时从ICU队列中查找匹配的UUID,若存在,表示合法;(8)获取受评人信息(8.1)用户登录验证通过后,云投票层SS_V调用getAppraiseeInfo()向SS_T请求受评人信息;(8.2)云投票层SS_T通过REST服务通过服务路由SRe找到对应的应用系统TA,使用REST方式调用TA的受评人服务获取受评人信息,成功获取后通过回调函数sendAppraiseeInfo()将受评人信息发送给用户层;(8.3)用户层调用bowerAppraiseeInfo()获取并显示受评人信息;(9)提交选票数据(9.1)用户层的投票人在浏览受评人信息后进行投票,投票完成后用户层调用commitVote()提交选票数据;(9.2)选票数据首先会经过云投票层的SS_V模块进行选票有效性验证,SS_V通过getVote()获取选票数据,并且进行UUID的合法性验证;若是合法用户,则调用云投票层的SS_T模块进行选票的统计,否则,选票废弃;(9.3)云投票SS_V模块通过getVoteInfo()将选票数据发送给SS_T模块,SS_T模块对选票数据进行统计。
地址 310014 浙江省杭州市下城区朝晖六区潮王路18号浙江工业大学