QQ在线支持
商务支持电话
13906050680
技术支持电话
0592-2651619
首页->局域网监控-> 基于数据安全加密技术,实现校园一卡通系统数据加密
  • 摘要:基于数据安全加密技术,实现校园一卡通系统数据加密,数据加密软件,数据加密技术,校园网加密,一卡通加密,IC卡加密

     

    基于数据安全加密技术,实现校园一卡通系统数据加密

    [导读] 本文主要探讨加密技术其在校园一卡通系统安全设计中的应用。

    校园一卡通系统是学校整合校内信息资源的一个有效平台,为学校管理、师生生活带来了便利,安全性在校园一卡通系统中处于重要的位置。为此我们研究了一种采用三层128位DES加密算法、动态密钥、MD5电子印鉴验证等技术,来保证校园一卡通系统网络传输安全的方法。

    一、三层DES数据加密
    校园一卡通系统中每天都有大量的金融交易,这些交易流水需要实时上传到校园卡结算中心,因此数据加密既要正确可靠,又要有很高的实时性和安全性。
    DES加密算法基于分组加密原理,是以每64位为分组数据,64位的明文从算法的一端输入,64位的密文从另一端输出。其实,算法只是加密的两种基 本技术——混乱和扩散的结合。DES基本组建分组是这些技术的一个组合(现代替后置换),通过密钥作用于明文。高一个分组密码算法安全性最简单的方法是用 不同的密钥对一个分组进行多次加密。采用了三层DES数据加密,其加密过程如图1所示。
     
    加密:C=EK3(DK2(EK1(P))))
    解密:P=DK1(EK2(DK3(C))))

    二、动态密钥管理
    密钥是否安全直接决定整个系统的数据安全。考虑到系统的密钥可能会被攻击,甚至是被破译,所以采用动态密钥机制,使得即使密钥在某个时间内被破获,但只 要及时更换了系统的密钥,系统安全就得以保证。动态密钥并不会存储到硬盘中,而是一直驻留在中心服务器的内存中,在每个密钥的一个生命周期中,即使系统管 理员也没办法读取密钥数据,这种机制大大降低了非法获取密钥的风险,从而保证了数据安全

    三、MD5电子印鉴认证
    MD5(信息一摘要算法)是Rivest教授设计的,源于MD4加以改良而成。目的是让大容量信息在用数字签名软件签署私人密匙前被“压缩”成一种 保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)闭。MD5比MD4增加了”安全一带子”(safety-belts)的概念。NID5较 MD4速度较慢,安全性更优。
    MD5以512位分组处理输入的信息,512位分组内又划为16个32位的子分组。经算法处理后得到一个128位的散列值。MD5中有四个链接变量,初始化为:
    A=Ox01234567
    B=Ox89abcclef
    C=Oxfedcba98
    D=Ox76543210
    接下来进入算法的主循环,信息中分组的数目决定循环的次数。将其四个链接变量复制到另外的变量中:A到a,B到b,C到c,D到d。算法的主循环有 四轮,每一轮进行16次操作。每轮对a、b、c和d中三个变量作一次非线性函数运算,运算的结果加上第四个变量。再将所得结果向右环移若干位,并加上四个 变量中的一个,最后用该结果取代。
     
    主循环中用到的四个非线性函数是:
     
    小知识之校园一卡通系统

    校园一卡通系统是数字化校园的基础工程,是数字化校园中有机的、重要的组成部分。为数字化大学提供了全面的数据采集平台,结合大学的管理信息系统和 网络,形成全校范围的数字空间和共享环境。为大学管理人员提供具有开放性、灵活性、面向大学的应用服务管理平台、是管理与管理科学化的必要前提和基本途 径。将给全校师生带来一种全新的、方便现代化生活。

    [导读] 本项目针对MD5加密技术中存在的一些缺陷,提出了一种基于字符型密码随机加密解密算法,并用JavaScript语言实现了加密与解密过程。

    为防止网络应用系统中字符型密码被非法用户通过“跑字典”破译,并能为网络用户找回丢失的密码,同时也为远程访问数据库做数据同步提供便利,我们提出了一种对字符型密码采用线性随机加密与解密的算法,并用JavaScript语言实现了加密与解密过程。

    一、字符型密码加密现状分析
    密码加密算法与解密算法有很多,例如著名的MD5加密算法和RSA加密算法等,其中分为可逆与不可逆算法,比如MD5加密算法是不可逆的,经MD5 加密后的密文无法还原出原始密码,应用系统只能将用户输入的原始密码按MD5加密算法运算后所得到的密文与实现经同样算法所生成的密文进行对比方能验证用 户的合法性,此方法最大的优点是任何人都不可能篡改用户密码,具备很高的安全性,目前的WEB系统中,对用户密码的加密,更多的是应用MD5进行加密。

    采用MD5加密,可以在一定程度上保证用户密码的安全性,但也有不足之处,主要表现在以下3个方面:

    (1) MD5是单向加密算法,加密后的信息不能解密,用户丢失密码后只能重盈密码,而没有任何方法找回密码。
    (2)不同的密码经MD5加密后有可能形成同一密文,虽然概率极低,但还是可能出错,也就是说用户不用原始密码而用另一密码也可能成功登录。
    (3)也是最关键之处,经MD5加密后的密文由于无法还原,所以在需要还原原始密码的应用中就不能使用,比如某些网站为了方便用户下次登陆而设有保 存密码的功能,一般来说使用浏览器的cookie来保存用户ID和登录密码,以便下次用户登录时系统自动为用户填写用户ID和登录密码,但利用 cookie来保存用户登录密码是不安全的,稍懂点网络编程的人就可以进入用户的计算机找出相应的cookie来窃取用户的登录密码。所以利用 cookie保存用户登录密码时需要经过一定的加密处理,并且经加密过的密文可以由一定的算法还原出原始密码。又比如某些分布式网络应用系统需要同步数据 库的内容,而访问远程数据库就必须有远程数据库的密码,而这个密码必须保存在本地而且需要进行加密处理,并且加密后的密文还应该有一定的算法来还原出原始 密码。因此MD5加密算法在一定的场合下不能满足需求。基于以上的需求,设计出一套新的加密算法与解密算法有着重大的意义。

    二、字符型密码随机加密算法与解密算法

    1、字符型密码随机加密算法设计思想
    基于字符型密码随机加密算法与解密算法的核心功能实质上就是字符串的加密与解密。设计要求有以下三点:
    ①算法相对简单,加密与解密运算速度快,消耗机器资源少。
    ②在得不到原始算法的基础上进行解密难度很大,无论是暴力破解还是技术破解都无法在短时间内完成解密,只能根据加密算法的逆运算才能正确解密。
    ③不担心密文泄露,破解者即使拿到多套正确的原始密码与加密后的密文也无法得出加密参数。

    2、加密算法与密钥设计
    按以上要求进行算法设计,经本人研究发现,绝大多数用户密码都是由计算机键盘上的可见字符组成,而计算机键盘上的可见字符ASC码范围为33到 126,本文以最长8位密码为例进行算法设计和实现,对于任何一个可见字符,其ASC码的范围为33到126,其中包括所有的英文字母,数字,标点符号 等。反过来说,对于任何一个在33至126内的数字都对应着一个字符。因此设计出一个线性加密算法,y=ax+b。其中,y为加密后的数值,x为原始散 值,对应着密码中的某一字符,a和b是两个随机数。
    线性加密参数设计:由线性加密公式y= ax+b和密文组成原则可知,y的取值范围为AA到ZZ,换算成十进制值为O到675,x为原始密码的某一位经ASC转换而来。所以x的取值范围为33到126,因此得到如下关系:其中x,y,a,b皆为正整数
    y=ax+b
    yo
    x32
    另外为了缩小参数范围,降低计算量,可以增加设定
    a>0
    b>o
    由以上关系解得O<a<6
    以下用穷举法分别求出对应于不同a值的b的取值范围
    当a=1时,解得O<b<549
    当a=2时,解得O<b<423
    当a=3时,解得o<b<297
    当a=4时,解得O<b<171
    当a=5时,解得o<b<45
    程序设计中a由系统随机生成,范围为O<a<6,上限是5,下限是1。b的范围用一个一维数组限制其上限,[549,423,297,171, 45]分别对应不同a值时的取值范围,下限是1。
    3、密文结构设计
    密文结构设计:密文由32位26进制数组成,用大写字母A到Z表示每一位,其中A到Z分别表示十进制的0到25,原始密码字符串最大长度为8位,每 一位经线性加密后用2个大写字母表示其加密密文,因此完全表示最长密码只需16位,根据上面分析所得的ab参数范围,设计用1位表示随机线性加密系数 a,1位表示原始密码字符串实际长度(字符个数),2位表示b,总共用20位表示完所有信息,剩下12位作为随机混淆处理位,分别插入前面11个(22 位)信息之间,并在密文首尾各加一位随机值,以增加破解难度。此外,为了防止大多数用户密码长度相同(比如大多取8位)时所生成的长度加密位相同,长度位 也用采用加密处理,本例用参数a的十进制值加上实际长度值所得结果再经26进制转换而成,这样得到的原始密码长度也是个随机数,即使两个用户密码长度相同 但在密文中对应的长度位也会不同。让破解者找不到任何规律。当原始密码长度小于8位时,用随机26进制直补齐8位。解密时根据长度位计算结果舍奔随机补充 部分。本例加密算法采用如下密文结构:
    密文位散 相应位数的值
    0: 随机值
    1-2: 加密后的线性加密参数b
    3: 随机值
    4: 加密后的原始字符串文长度
    5: 随机值
    6-7: 加密后的原始字符串第1位
    8: 随机值
    9-10:加密后的原始字符串第2位
    11: 随机值
    12-13:加密后的原始字符串第3位
    14: 随机值
    15-16:加密后的原始字符串第4位
    17: 随机值
    18-19:加密后的原始字符串第5位
    20: 随机值
    21-22:加密后的原始字符串第6位
    23: 随机值
    24-25:加密后的原始字符串第7位
    26: 随机值
    27-28:加密后的原始字符串第8位,原始密码不足8位的用随机值得补齐8位
    29: 随机值
    30: 加密后的线性加密参数a
    31: 随机值
    4、加密算法、解密算法流程
    图1是本算法的加密流程,图2是本算法的解密流程,下面分别对加密、解密过程进行说明。
     
    (1)加密过程
    以字符型密码“Dca8? d3@”为例说明加密过程:首先生成随机加密参数a(B的取值范围为1-5)。如本例中a=4,然后进行下面的流程:
    (1)根据生成的a值查表(程序中用数组表示)得到参数b的最大值maxb,然后在1-maxb之间生成随机参数b。如本例中b=92。
    (2)取明文字符串长度I,然后加参数a,生成长度位L。如本饲中L=4+8=12。
    (3)填写密文前7(0—6)位,方法为,第0位随机生成,本例是Z,第1,2位为加密参数b的26进制值,本例为D0-92,第3位为混淆随机值,本例为Q,第4位为原字符串长度加参数a所得结果的26进制值,本例为4+8=12=M。第5位为混淆随机值,本例为0。
    (4)分别取明文中的每一个字符(如例1中第一字符D)进行ASC码转换,如D的ASC值为68,然后将此ASC码值经线性加密公式y=ax+b得出加密后的数值,此例中,Y=ax+b=4*68+92=364。
    (5)将第4步得到的数值转换成两位26进翩值,如t026 (364)=OA。
    (6)添加一位随机大写字母,用于混淆,此例中为H。
    (7)循环做(5)一(7),本例得到SUNSMMMEDN-GRSYYLKJNKX。
    (8)假如字符原字符串长度小于8,则随机补充到8位,每差一位补齐3个随机值。本例中长度正好位8位,所以不补充。
    (9)填写加密参数a的26进制值,本例为a=4=E。
    (10)生成随机混淆值,本例为L。
    则本例中密文为:ZDOQMOOAHSUNSMMMEDN-GRSYYLKJNKXEL。
    因为加密参数a、b是随机的,所以同一明文可以得到不同的密文,如表1所示。
     
    (2)解密过程
    以密文“OQMOOAHSUNSMMMmNGRSYYLKJN-KXEI”为例说明解密过程:
    (1)读出密文,并检查密文结果,检查内容为密文长度必须为32位,密文必须全由大写字母组成,否则密文有错,不是正常加密所得密文。
    (2)取密文第30位(密文第一位为0位)值,本例为E,转换为10进制数为4,得加密参数a为4。
    (3)取密文第4位值,本例为M,转换为10进制值为12,减去第二步中得到的a值,得到原始字符串(明文)的长度,本例为12-4=8。
    (4)检查第(3)步中得到的长度,假如长度值小于1或大于8则密文有错,报告错误并停止运行。
    (5)取密文第1,2位,本例为DO,转换为十进制值为92,得到加密参数b。
    (6)从密文的第6位开始循环取3位(循环次数为第3步中得到的长度,本倒为8)。然后取3位中的前两位进行十进制转换,本例循环8次,分别得到OA= 364,SU,SM.ME,NG.SY,LK,NK等。
    (7)由加密公式y-ax+b得解密公式为x-(y-b)/a,分别算出第6步得到的值,本例中第一个字符解密结果为x-(y-b) /a- (364-92) /4-68。
    (8)经ASC码逆转换得到第(7)步所的数的字符。
    (9)连接循环解出的每一位得到解密结果,本例为Dca8? d3@。
    同一明文的不同次数加密得到的不同密文,经过解密后可以得到相同的明文,如表2所示。
     
    三、字符型密码如何随机加密与解密
    本文用JavaScript语言实现了加密与解密过程,其中设计了以下函数;
    十进制散转26进制函数:t026 (x),作用,返回十进制数x的26进制值。
    该函数根据传人参数x生成26进制值。用符号A至Z表示26进制的0到25,根据密文组成规则,该函数至少返回两位值,例如t026 (0)=AA。
    26以内的十进制数转单个26进制字符函数:toSg26(x)
    该函数传入参数x的范围在0-25,函数返回单个26进制字符,主要用于表示密文中单个随机混淆值和参数a和字串长度值等,例如to\Sig26 (3)=D。
    26进制转十进制函数:tol0 (s),作用为把26进制字符串转换成十进制数返回,参数s为26进制字符串,例如tol0 (BC)=28。
    随机数产生函数:Random(rrun,max),作用为产生参数nun到max内的随机数,包括nun和max。
    加密主函数:Encryption (s),作用为对于任何传入参数(小于等于8位)。返回32位26进制字符串。
    解密主函数:Decryption (s),对于用加密模块加密后的32位字符串,解密还原出加密以前的原址字符串。
    图3为密码”Dca8? d3@”的加密、解密示例。
     
    小知识之MD5加密
    MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。


    作者: AnyView(网络警)网络监控软件   时间: 2015-8-4 17:36:17   点击:     

    相关资讯:
    [网络监控软件在企业网管中应用实践] 局域网管理和数据加密: 局域网文件加密技术解读,图纸文件自动加密系统
    [局域网监控互联网管理相关业界法规] 学校办公室保密制度
    [网络监控软件在企业网管中应用实践] 局域网管理和广域网监控:网络安全技术及方案对策分析
    [局域网监控软件相关之网络关键技术] 数据加密技术:用Windows XP隐含超强命令加密系统
    [局域网网络监控软件相关产业之动态] 今年最热五大信息安全和数据安全,网络安全威胁趋势预测
    [监控软件在企业经营管理中广泛应用] 局域网管理,局域网监听,加密技术,信息加密系统,保护企业信息安全
    [局域网监控软件相关之网络关键技术] 上网监控系统,网络安全基础,网络安全的几项关键技术
    [监控软件在企业经营管理中广泛应用] 如何通过加密软件与杀毒软件来保护内部机密数据安全
    [监控软件在企业经营管理中广泛应用] 文件加密,防止机密外泄,关键数据丢失,企业信息安全
    [监控软件在企业经营管理中广泛应用] 内网监控管理,信息安全系统,内网行为管理,企业数据安全跨越
■ AnyView(网络警)网络监控软件--功能检索
  • 服务电话:0592-2651619 / 13906050680 ; 钉钉:15359220936;微信:15359220936;Skype:Amoisoft;
  • 服务邮箱: Sales@amoisoft.com;Order@amoisoft.com;Tech@amoisoft.com;
  • 支持QQ:9908430(综合),850753251(购买1),573982850(购买2),969263561(技术1),53864605(技术2),332056791(技术3)
■ 联系我们获得支持和服务 ■ 信息留言反馈