一种身份认证系统的智能终端IC卡授权与管理方法与流程

文档序号:11620890阅读:443来源:国知局
一种身份认证系统的智能终端IC卡授权与管理方法与流程

本发明属于通信与计算机控制技术领域,特别涉及一种互联网模式下身份认证系统的智能终端ic卡授权与管理方法,可适用于用户ic卡的授权与管理。



背景技术:

目前,随着小区安全管理对信息化需求与业主总数的不断增加,越来越多的小区将建立一套新型的现代化公共安全管理系统,它集身份识别和现代化管理措施为一体,是小区出入口实现安全防范管理的有效保障。在此之前,需要进行业主所持门禁卡的初始化以及业主基础信息数据录入。

但是,在目前许多实际门禁卡初始化流程中,都采用专用的一种手持发卡设备,这种设备价格昂贵,实用性与便携性都较差。因此需要找到一种简单、高效的ic卡授权与管理方法。

身份认证:

身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中确认操作者身份的过程,从而确定该用户是否具有对某种资源的访问和使用权限,进而使计算机和网络系统的访问策略能够可靠、有效地执行,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全,以及授权访问者的合法利益。

智能ic卡:

ic卡,又称“集成电路卡”、“智能卡”,英文名称“integratedcircuitcard”或“smartcard”。它是将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的卡相似,在其做上方嵌有一片若干片集成电路芯片(接触式ic卡)。芯片一般是不易挥发性存储器(rom、eprom、eeprom),保护逻辑电路,甚至于cpu(中央处理单元)。

数据库技术:

数据库技术从20世纪60年代开始兴起,已经40余年的历史。所谓数据库,是指长期储存在计算机内、有组织的、可共享的数据集合。而数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。数据库是数据管理的最新技术,是计算机科学的重要分支。随着技术的发展,数据库管理系统已从专用的应用程序包发展成为通用的系统软件。由于数据库具有永久储存、较小冗余度、有组织、较高数据独立性和易扩展性等优点,许多庞大的信息系统都是以数据库为基础设计的。



技术实现要素:

发明目的:针对现有技术中存在的问题,本发明提出一种互联网模式下身份认证系统的智能终端ic卡授权与管理方法,通过通用的智能终端代替现有的专用发卡设备,方便ic卡的授权与管理,节省系统投资。

技术方案:本发明提出一种身份认证系统的智能终端ic卡授权与管理方法,该方法基于互联网模式,包括如下步骤:

步骤1:初始化ic卡授权与管理系统的用户账户信息、所有用户角色信息、每个用户所拥有的角色信息和每种用户角色可执行的基本操作;

步骤2:ic卡授权与管理系统根据智能终端上登录用户所拥有的用户角色列出可执行的所有操作,并根据用户选择的将执行的操作列出所需输入的信息;

步骤3:智能终端对用户的输入信息采用基于身份的自适应复合加密算法进行加密,并将加密后的数据信息上传至服务器执行相应操作;

步骤4:服务器将执行结果返回给智能终端,智能终端对返回的数据信息进行解密处理并将结果呈现给用户。

所述加密算法具体为:

步骤3.1:设输入数据ordatag的字符数为cnum,将数据项的最后一个字符w对应的十进制数值赋给变量num,若变量num赋值数值10;

步骤3.2:判断num能否整除cnum,若能,则执行步骤3.3,否则转至步骤3.9;

步骤3.3:设变量scen,将cnum除以num的商赋值值给变量scen;

步骤3.4:将字符串ordatag截取成num段长度相同均为scen的字符串,分别为s1,s2,...,snum;

步骤3.5:将s1,s2,...,snum-1这num-1个字符串中的字符排列顺序颠倒,得到新的字符串为别为s'1,s'2,...,s'num-1;

步骤3.6:设变量ssnum,由s'1,s'2,...,s'num-1,s'num拼接组成的字符串赋值给ssnum,其中,s'num为snum除去最后一个字符w得到的字符串;

步骤3.7:将ssnum进行二进制左移num位后对应的二进制值以字符串形式赋值给ssnum;

步骤3.8:在ssnum最后拼接上字符w,即得到加密后数据项结束加密进程;

步骤3.9:设变量ncen、modncen,将cnum除以num的商赋值给变量ncen,余数赋值给变量modncen;

步骤3.10:将数据项截取成num+1段字符串,分别为ns1,ns2,...,nsnum+1,其中,ns1,ns2,...,nsnum字符串中字符个数均为ncen,nsnum+1中字符个数为modncen;

步骤3.11:将ns1,ns2,...,nsnum这num个字符串中的字符排列顺序颠倒,得到新的字符串为别为ns'1,ns'2,...,ns'num;

步骤3.12:设变量nssnum,由ns'1,ns'2,...,ns'num,ns'num+1拼接组成的字符串赋值给nssnum,其中,ns'num+1为nsnum+1除去最后一个字符w得到的字符串;

步骤3.13:将nssnum进行二进制左移num位后对应的二进制值以字符串形式赋值给nssnum;

步骤3.14:在nssnum最后拼接上字符w,即得到加密后数据项。

所述解密算法具体为:

步骤4.1:设变量cc,将服务器返回给智能终端的加密数据dy除去最后一位字符得到的字符串赋值给cc;

步骤4.2:设变量cu,将加密数据最后一位字符对应的十进制数值赋值给cu,若变量cu赋值数值10;

步骤4.3:设变量nnum,将字符串cc对应的二进制值右移cu位之后以utf-8格式编码赋值给字符串nnum;

步骤4.4:将nnum与字符串dy最后一位字符拼接得到字符串nestr={nc1,nc2,...,ncmc},其中,mc为nestr中字符个数;

步骤4.5:判断cu能否整除nestr,若能,则执行步骤4.6,否则转至步骤4.10;

步骤4.6:设变量cscen,将nestr除以cu的商赋值值给变量cscen;

步骤4.7:将字符串nestr截取成cu段长度相同均为cscen的字符串,分别为cs1,cs2,...,cscu;

步骤4.8:将cs1,cs2,...,cscu-1这cu-1个字符串中的字符排列顺序颠倒,得到新的字符串为别为cs'1,cs'2,...,cs'cu-1;

步骤4.9:将cs'1,cs'2,...,cs'cu-1与cscu按下标顺序升序排列拼接,即得到解密后数据项结束解密进程;

步骤4.10:设变量cncen、cmodncen,将nestr除以cu的商赋值给变量cncen,余数赋值给变量cmodncen;

步骤4.11:将字符串nestr截取成cu+1段字符串,分别为ns1,ns2,...,nscu+1,其中,ns1,ns2,...,nscu字符串中字符个数均为cncen,nscu+1中字符个数为cmodncen;

步骤4.12:将ns1,ns2,...,nscu这cu个字符串中的字符排列顺序颠倒,得到新的字符串为别为ns'1,ns'2,...,ns'cu;

步骤4.13:将ns'1,ns'2,...,ns'cu与nscu+1按下标顺序升序排列拼接得到字符串,即得到解密后数据项。

所述智能终端包括智能手机和pad。

有益效果:本发明提出了利用广泛利用的智能终端来代替传统手持发卡设备,方便ic卡的授权与管理;其中基于身份的复合加密算法,根据待加密字符串特定位字符信息将字符串切割为一批等长的子字符串,对子字符串中字符排列顺序逆转后重新拼接,最后将除特定位字符以外的字符组成的字符串对应的十进制数值乘以特定位字符对应的十进制数值,得到加密后数值,具有加密复杂度高,适合于计算能力有限的智能终端的特点,解决了现有手持发卡设备成本高、效率低下的问题,具有很高的实用价值。

附图说明

图1为ic卡授权与管理方法概述图;

图2为初始化系统用户等信息概述图;

图3为用户登录并执行相关操作概述图;

图4为智能终端加密算法流程图;

图5为智能终端上传数据概述图;

图6为解密服务器的返回信息流程图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1所示,身份认证系统的智能终端ic卡授权与管理方法,包括如下步骤:

步骤1:初始化ic卡授权与管理系统的用户基本信息、所有用户角色信息、每个用户所拥有的角色信息和每种用户角色可执行的基本操作,具体的如图2所示:

步骤1.1:建立ic卡授权与管理系统中用户账户信息集合u={u1,u2,...,um}、系统所有用户角色集合r={r1,r2,...,rn}和用户可执行的所有操作集合a={a1,a2,...,az},其中,m为系统中用户总数,n为系统中用户角色总数,z为用户可执行的所有操作总数;

步骤1.2:设ui为第i个用户的账户信息,其中,ui∈u,i<=m;第i个用户登录,获取账户信息ui;

步骤1.3:设ur={ur1,ur2,...,urm}为系统m个用户中每个用户的用户角色集;根据ur获取账户信息为ui的用户的用户角色集uri={r1,r2,...,re},其中,re∈r;

步骤1.4:设rcx={a1,a2,...,as}为系统中拥有角色x的用户可以执行的所有操作的集合,其中,x∈r,s为可执行操作总数;根据urci=rcx1∪rcx2∪...∪rcxe={a1,a2,...,at}获得账户信息为ui的用户所有可执行的操作的集合urci,其中,t为操作总数且xe∈uri;

步骤2:系统根据登录用户所拥有的用户角色列出可执行的所有操作,为用户提供可执行的基本操作和该操作所需的输入信息,具体的如图3所示:

步骤2.1:账户信息为ui的用户选择执行的操作ua,其中,ua∈urci;

步骤2.2:设cnstr={ch1,ch2,ch3,...,chv}为人员的ic卡物理卡号,其中,v为物理卡号cnstr的总长度;获取人员的ic卡物理卡号cnstr={ch1,ch2,ch3,...,chv};

步骤2.3:设oudaua={ud1,ud2,...,udk}为操作ua所需要的数据项集合,其中,k为操作ua需要的数据项总数;

步骤2.4:根据oudaua∩cnstr获取剩余需要录入的数据项集合uremainfo={ud1,ud2,...,udq},其中,q为剩余需要录入的数据项总数;

步骤2.5:设p为循环变量,p=0;

步骤2.6:p=p+1;

步骤2.7:当循环变量p<=q时,执行步骤2.8,否则执行步骤2.9;

步骤2.8:录入数据项udp内容,其中,udp∈uremainfo;

步骤2.9:账户信息为ui的用户客户端获得未经加密的人员完整信息oudaua={ud1,ud2,...,udk};

步骤3:智能终端对收集的数据信息采用一种基于身份的自适应复合加密算法加密,具体的如图4所示:

步骤3.1:设g为循环变量,g=0;

步骤3.2:g=g+1;

步骤3.3:如果循环变量g<=k,执行步骤3.4;否则执行步骤3.2;

步骤3.4:如果数据项udg需要加密处理则执行步骤3.5,否则执行步骤3.2;

步骤3.5:设整型变量num,设字符串udg的字符个数为cnum,将字符串udg的最后一个字符w对应的十进制数值赋给变量num,若变量num赋值数值10;

步骤3.6:num如果能整除cnum则执行步骤3.7,否则执行步骤3.13;

步骤3.7:设变量scen,将cnum除以num的商赋值值给变量scen;

步骤3.8:将字符串ordatag截取成num段长度相同均为scen的字符串,分别为s1,s2,...,snum;

步骤3.9:将s1,s2,...,snum-1这num-1个字符串中的字符排列顺序颠倒,得到新的字符串为别为s'1,s'2,...,s'num-1;

步骤3.10:设变量ssnum,由s'1,s'2,...,s'num-1,s'num拼接组成的字符串赋值给ssnum,其中,s'num为snum除去最后一个字符w得到的字符串;

步骤3.11:将ssnum进行二进制左移num位后对应的二进制值以字符串形式赋值给ssnum;

步骤3.12:在ssnum最后拼接上字符w,将结果重新赋值给变量udg;

步骤3.13:设变量ncen、modncen,将cnum除以num的商赋值给变量ncen,余数赋值给变量modncen;

步骤3.14:将字符串udg截取成num+1段字符串,分别为ns1,ns2,...,nsnum+1,其中,ns1,ns2,...,nsnum字符串中字符个数均为ncen,nsnum+1中字符个数为modncen;

步骤3.15:将ns1,ns2,...,nsnum这num个字符串中的字符排列顺序颠倒,得到新的字符串为别为ns'1,ns'2,...,ns'num;

步骤3.16:设变量nssnum,由ns'1,ns'2,...,ns'num,ns'num+1拼接组成的字符串赋值给nssnum,其中,ns'num+1为nsnum+1除去最后一个字符w得到的字符串;

步骤3.17:将nssnum进行二进制左移num位后对应的二进制值以字符串形式赋值给nssnum;

步骤3.18:在nssnum最后拼接上字符w,将结果重新赋值给变量udg;

步骤3.19:账户信息为ui的用户客户端生成加密后人员完整信息oudaua={ud1,ud2,...,udk};

步骤4:智能终端将加密后数据信息上传至服务器,服务器端执行相应操作,具体的如图5所示:

步骤4.1:智能终端尝试连接服务器;

步骤4.2:智能终端如果成功连接服务器则执行步骤4.2,否则执行步骤4.10;

步骤4.3:将信息oudaua与要执行的操作ua保存至本地设备;

步骤4.4:如果上传成功则执行步骤4.5否则执行步骤4.7;

步骤4.5:如果执行操作ua成功,则执行步骤4.6,否则执行步骤4.7;

步骤4.6:设reudata={d1,d2,...,dr}为服务器返回用户的数据集;服务器将数据reudata={d1,d2,...,dr}发送至账户信息为ui的用户的客户端,其中,r为数据项总数;

步骤4.7:异常处理并记录在客户端;

步骤4.8:等待5分钟,执行步骤4.9;

步骤4.9:如果与服务器网络连接成功则执行步骤4.3,否则执行步骤4.8;

步骤4.10:将信息oudaua与要执行的操作ua保存至本地设备,执行步骤4.7;

步骤5:服务器将执行结果返回给智能终端,智能终端对服务器返回的数据信息进行解密处理并将结果呈现给用户,具体的如图6所示:

步骤5.1:设reudata={d1,d2,...,dr}为服务器返回用户的数据集;服务器将数据reudata={d1,d2,...,dr}发送至账户信息为ui的用户的客户端,其中,r为数据项总数;

步骤5.2:设循环变量y,y=0;

步骤5.3:y=y+1;

步骤5.4:如果循环变量y<=r则执行步骤5.5否则执行5.19;

步骤5.5:如果需要dy解密处理则执行步骤5.6,否则执行步骤5.3;

步骤5.6:设变量cc,将字符串dy除去的最后一位字符得到的字符串赋值给cc;

步骤5.7:设变量cu,将cu赋值为字符串dy最后一位字符对应十进制数值,若变量cu赋值数值10;

步骤5.8:设变量nnum,将字符串cc对应的二进制值右移cu位之后以utf-8格式编码赋值给字符串nnum;

步骤5.9:将nnum与字符串dy最后一位字符拼接得到字符串nestr={nc1,nc2,...,ncmc},其中,mc为nestr中字符个数;

步骤5.10:如果cu整除nestr则执行步骤5.11,否则执行步骤5.15;

步骤5.11:设变量cscen,将nestr除以cu的商赋值值给变量cscen;

步骤5.12:将字符串nestr截取成cu段长度相同均为cscen的字符串,分别为cs1,cs2,...,cscu;

步骤5.13:将cs1,cs2,...,cscu-1这cu-1个字符串中的字符排列顺序颠倒,得到新的字符串为别为cs'1,cs'2,...,cs'cu-1;

步骤5.14:将cs'1,cs'2,...,cs'cu-1与cscu按下标顺序升序排列拼接得到字符串重新赋值给变量dy;

步骤5.15:设变量cncen、cmodncen,将nestr除以cu的商赋值给变量cncen,余数赋值给变量cmodncen;

步骤5.16:将字符串nestr截取成cu+1段字符串,分别为ns1,ns2,...,nscu+1,其中,ns1,ns2,...,nscu字符串中字符个数均为cncen,nscu+1中字符个数为cmodncen;

步骤5.17:将ns1,ns2,...,nscu这cu个字符串中的字符排列顺序颠倒,得到新的字符串为别为ns'1,ns'2,...,ns'cu;

步骤5.18:将ns'1,ns'2,...,ns'cu与nscu+1按下标顺序升序排列拼接得到字符串重新赋值给变量dy;

步骤5.19:账户信息为ui的用户客户端获取解密后数据集reudata={d1,d2,...,dr}并显示;

为了更好地说明本方法的有效性,随机选取10位业主进行ic卡授权与管理测试,数据平均加密时间708692ns,平均解密时间3660384ns,加密与解密耗时比传统算法如md5、des的耗时更短,节约智能终端资源;50个用户的智能手机作为门禁系统的授权与管理终端,达到了98.56%的信息准确率。

本发明可与计算机系统结合,从而更高效率完成ic卡的授权与管理。

发明创造性的提出了一种基于身份的复合加密算法,具有加密复杂度高,节省了智能终端的资源,适用于计算性能有限的智能终端。

本发明提出的互联网模式下身份认证系统的智能终端ic卡授权与管理方法不但适用于小区业主ic卡授权与管理,也适合于楼堂馆所,企业办公场所等应用场景。

本发明提出的互联网模式下身份认证系统的智能终端ic卡授权与管理方法不但适用于智能手机,也可以适用于pad等移动智能终端,利用通用设备来代替专用的手持发卡设备。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1