数字签名技术和校园网一卡通系统
文章出处:http://www.ifyousmell.com 作者:林鹏,万振凯 人气: 发表时间:2011年11月25日
1 数字签名的原理
数字签名基于加密技术,是加密技术在认证领域的一个应用。现在的加密技术分为三大类:杂凑函数、私钥密码体制、公钥密码体制。因此,数字签名也分为三种体制:基于杂凑函数的数字签名、基于私钥密码体制的数字签名和基于公钥密码体制的数字签名。使用杂凑函数方案的数字签名对杂凑函数的选择要求很高,但是能符合要求的杂凑函数并不是很多,因此这种方案多用于对消息进行变换而得到其消息文摘,然后利用其他的算法对消息进行签名。基于私钥密码体制的数字签名有两种基本方式,也就是双方直接通信或者借助可靠的第三方进行通信。Lamport-Diffie方案是常见的双方直接通信的数字签名,该方案根据消息选取不同的参数,因此可靠性较高,但是数据膨胀率极大,而且密钥用过立即作废。如果借助第三方,则需要第三方公正而且双方都可以信任,以便通过其来验证签名。第三方拥有与之通信的所有用户的密钥,通信双方如果发生争执,第三方可以起到仲裁作用,但是由于要管理大量的密钥,所以容易出现瓶颈的问题。
与前两种方式的数字签名相比,基于公钥密码体制实现的数字签名简单而且更加实用。因此现在的数字签名大多是指这种类型。美国的数字签名标准DSS\DSA采用了公钥密码体制。公开密钥算法的特点可概述为以下几点:
1)用加密密钥对明文加密后再用解密密钥解密即可以恢复出明文。
2)加密密钥不能用来解密。
3)在计算机上可以容易的产生成对的加密和解密密钥。
4)从已知的加密密钥实际上不可能推出解密密钥。
5)加密和解密的运算可以对掉。
2 数字签名的方案设计
在实际应用中,数字签名必须保证以下几点:接收者能够核实发送者对报文的签名;发送者事后不能抵赖对报文的签名;接受者不能伪造对报文的签名。也就是说签字可以被确认,但是无法被伪造。签字无法重复使用,被签名的文件是不能够被篡改的,签字具有无可否认性。
自数字签名的概念提出以来,涌现出了很多的签名方案,RSA方案和ElGammal方案是其中较为典型的两种。RSA方案是River、Shamir、Adleman于1978年提出的,自公布以来,许多专家和学者对其进行了分析,但至今尚未找出主要缺陷。RSA有两个参数e和d,。若将e公开,则d保密。密码能保证信息不被非法窃取,但不能防止发信方抵赖,也不能阻止收信方作假。因为其中e和n是公开的。若发生双方纠纷,很难判断是发信方抵赖还是收信方伪造。
ElGammal方案是ElGammal等人在1985年提出的,是继RSA之后著名的数字签名方案。该方案基于求离散对数的困难性。系统提供一大素数p和G,(p)上的本原元素go对每一个用户A可选择XA∈[O,1,2A,p-1]。计算。将 yA公开,XA保密,由A自己掌握。
在校园网办公自动化系统中可以考虑这两种方案,而且为了增加安全性,可以将这两种方案合二为一。RSA方案是基于大整数分解的问题,而ElGammal方案是基于有限域上的离散对数问题,只要将签名方案的安全性建立在大整数分解和离散对数这两个问题的基础上面,那么这个方案的安全性将要比RSA方案和Elgammal方案的安全性都要好。基于这些理论,可以构造一种新的数字签名方案。
方案描述:
3 方案的分析
上述方案具有如下特点:方案的安全性是建立在整数分解和离散对数两个困难问题上,要攻破该方案,必须求解Z*P中的离散对数问题,并且要有能力把(p-1)/2分解为两个大素数。因此它的安全性比RSA和ElGammal都要好一些。
在该方案中采用了不需要求逆运算而且验证只需要两个仪器仪表用户模指数运算的一种广义ElGammal签名形式:s=(m+r)X-j ,比起需要求逆运算并且验证时需要三个模指数运算的ElGamal签名形式sj=m-xr来说,计算量要小很多。该方案是非确定性的,即对于同一明文消息,由于随即参数选择的不同,产生的签名也会不同。
4 方案的实现
该方案分为三个模块:密钥获取模块、签名模块和验证模块。
1)用户密钥获取模块
每个初次接入系统的设备都需要输入一个初始值p ,系统根据这个初始值产生两个大数q1和t ,而后在这两个大数附近确定两个大素数g和t,再由p=2qt+1确定p,对p进行检测,看其是否为素数。如果p是素数,就可以由此产生签名私钥和验证签名所用的公钥,否则需要重新输入另外的初始值。公钥和私钥产生后,私钥保存在设备中,公钥存入公钥簿中(公钥簿是一个公共文件)。
2)签名模块
终端机对某一消息签名的时候,用自己的签名私钥,即可得到该消息的数字签名。
3)验证模块
服务器端接收到签名消息后,将消息输入到验证模块,模块进行验证并输出验证结果。
5 结论
本文针对校园网一卡通系统设计了一个数字签名方案,该方案结合了RSA和ElGammal的安全性,因此更加可靠。编程测试结果表明该方案对签名真伪判断完全正确。如果结合其他的数据加密技术,该方案将能胜任一般办公系统对数据安全性的要求。
(文/天津工业大学计算机与自动化学院,林鹏,万振凯)