实验三数字签名方案设计
一、实验目的及要求
1.了解数字签名在电子商务中的作用;
2.了解数字签名的方案设计;
3.明确数字签名的作用;
4.按需求完成数字签名的方案设计。
二、实验内容与步骤
实验内容:
用户在交易过程中发送的信息包括订单信息和支付信息,需要满足以下条件:
1、第三方支付系统不能知道订单信息,商家不能知道支付信息。
2、商家和第三方支付系统都需要确认信息是否来自该用户。
3、第三方支付系统虽然不能知道订单信息内容,但可以确认收到的支付信息是与订单绑定的。
4、商家虽然不能知道支付信息,但可以确认收到的订单信息是与支付信息是绑定的应该采用什么数字签名方式?具体过程如何进行?
实验步骤:
1、回顾数字签名、认证中心等相关概念;
2、上网参考解决方案;
3、设计一种满足要求的数字签名的方案(请给出具体的描述及原理图)。
数字签名设计方案
引言
在当今信息社会,计算机网络技术得到了突飞猛进的发展。
计算机网络日益成为工业、农业和国防等领域的重要信息交换手段,并逐渐渗透到社会的各个领域。
在现实生活中,人们常常需要进行身份鉴别、数据完整性认证和抗否认。
身份鉴别允许我们确认一个人的身份;数据完整性认证则帮助我们识别消息的真伪、是否完整;抗否认则防止人们否认自己曾经做过的行为。
随着无纸化办公的发展,计算机网络的安全越来越受到重视,防止信息被未经授权
的泄漏、篡改和破坏等都是亟待解决的问题。
在Internet上,数字签名作为一项重要的安全技术,在保证数据的保密性、完整性、可用性、真实性和可控性方面起着极为重要的作用。
同时由于信息技术的发展及其在商业、金融、法律等部门的普及, 数字签名技术又面临着新的挑战。
随着电子商务的发展,电子签名的使用越来越多。
实现电子签名的技术手段有很多种,比如基于公钥密码技术的数字签名;或用一个独一无二的以生物特征统计学为基础的识别标志,例如手印、声音印记或视网膜扫描的识别;手书签名和图章的电子图像的模式识别;表明身份的密码代号;基于量子力学的计算机等。
但比较成熟的、世界先进国家目前普遍使用的电子签名技术还是基于PKI的数字签名技术。
目前电子签名法中所提到的签名,一般指的就是“数字签名”,它是电子签名的一种特定形式。
设计目的
1.第三方支付系统不能知道订单信息,商家不能知道支付信息;
2.商家和第三方支付系统都需要确认信息是否来自该用户;
3.第三方支付系统虽然不能知道订单信息内容,但可以确认收到的支付信息是与订单
绑定的;
4.商家虽然不能知道支付信息,但可以确认收到的订单信息是与支付信息是绑定的。
设计概述
所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。
包括普通数字签名和特殊数字签名。
普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir 数字签名算法、DES/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。
特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用
环境密切相关。
设计分析
1.第三方支付系统不能知道订单信息,商家不能知道支付信息。
明显地,订单信息与支付信息必须是进行了严谨的加密,而且双方都没有能力解密对方信息。
2.商家和第三方支付系统都需要确认信息是否来自该用户。
如何确认信息,离不开数字签名的专一性。
因此信息处理过程中必须有数字签名的环节。
3.第三方支付系统虽然不能知道订单信息内容,但可以确认收到的支付信息是与订单绑定的。
由于对方的信息经过处理,而自己只有解读所属信息的能力,保证了密文不易外泄。
4.商家虽然不能知道支付信息,但可以确认收到的订单信息是与支付信息是绑定的。
同3同理可得。
设计对象
用户、商家、第三方支付系统
设计思路与方案
非对称加密算法原理:
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥;
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A;
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥;
4.A将这个消息发给B(已经用B的公钥加密消息);
5..B收到这个消息后,B用自己的私钥解密A的消息。
其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
数字签名原理:
1.报文的发送方用一个哈希函数从报文文本中生成报文摘要(散列值);
2.发送方用自己的私人密钥对这个散列值进行加密;
3.这个加密后的散列值将作为报文的附件和报文一起发送给报文的接收方;
4.报文的接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出
报文摘要;
5.再用发送方的公用密钥来对报文附加的数字签名进行解密;
6.如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。
通过数
字签名能够实现对原始报文的鉴别。
设定订单信息为A,支付信息为B;
●用户通过算法把A、B分别生成报文摘要Aa、Bb;
●然后用自己的私人密钥对摘要分别加密为a1、b1;
●同时生成数字签名公钥a_pub、b_pub;
●商家和第三方支付系统向用户发送加密公钥分别为c1和d1,自己保留私钥c2和
d2;
●用户利用c1和d1分别将A和B加密为a、b;
●用户把a与b绑定在一起为ab;
●用户把ab、a_pub、Aa、a1发送给商家;
●用户把ab、b_pub、Bb、b1发送给第三方支付系统。
●商家利用自己私钥c2把ab解密为Ab,从Ab中的A计算出Aa是否与a_pub解密
的a1相同,确认签名;
●第三方支付系统利用自己私钥d2把ab解密为aB,从aB中的B计算出Bb是否与
b_pub解密的b1相同,确认签名。
设计结果
1.用户成功绑定订单信息和支付信息并发送;
2.商家因为只有c2、a_pub、Aa和a1,解读不了ab中的b,但可以确认签名来自用户;
3.第三方支付系统因为只有d2、b_pub、Bb和b1,解读不了ab中的a,但可以确认签名来自用户。
设计总结
通过设计,了解到电子商务安全技术中有着特别重要地位的数字签名技术,以及数字签名技术向参与网络活动的实体提供身份认证,确保信息传输的机密性和完整性,有效防止了各种网络信息中的安全隐患。
数字签名已成为信息社会中人们保障网络身份安全的重要手段之一, 世界各地制订了赋予数字签名合法地位的法律。
然而,我国关于数字签名技术的研究和应用刚起步,与国际先进水平有一定差距。
附录一:
RSA签名方案:
设n = pq,其中p和q是大素数。
定义K={(n,p,q,a,b)|n=pq},p 和q为素数,ab ≡1(mod (n))}。
值n 和b为公钥,值p,q和a为私钥。
对K={(n,p,q,a,b)},定义:sigk(x) = xa(mod n)。
verk(x, y) = trie<=>x≡y b(mod n)。
Alice 使用RSA 解密函数Dk 为x 消息签名,因为Dk=sigk是保密的,所以只有Alice 能够产生这一签名,而验证算法使用RSA 加密函数Ek。
因Ek 是公开的,所以任何知道Ek 的人都能验证该签名。
ElGamal签名方案:
ElGamal算法既可用于数字签名又可用于加密,其安全性依赖于计算有限域上离散
对数的难度。
设P是一个素数,两个随即数g和x,要求g,x<p,计算y=
)
(mod p g x,
则其公钥为y,g 和p,私钥是x.g 和p 可由一组用户共享。
假定被加密信息为M ,首先选
择一个随机数k ,k 与p-1互质,计算a=)(m od p g k ,b=)(mod p M y k .(a,b)为密文,是
明文的两倍长。
解密计算M=b/)(mod p a x。
四、实验体会
通过这次实验,我对数字签名有了更深的了解,同时也了解到数字签名在电子商务中的重要性,对于电子商务交易的安全性作出了无可替代的贡献。
随着电子商务不断的发展,数字签名的使用会越来越广泛。
在本次实验中,体会到文件加密、数字签名等一系列保护文件安全性的工具在电子商务的发展过程中起到了很重要的作用。
安全性是电子商务行业发展的保证,但是要在三方之间建立起数据的保密不是一件简单的事情,目前还是会存在一定的局限性,安全性能高的会比较麻烦,简单的其安全性能会存在一定的漏洞,但是随着技术的发展,电子商务行业一定会突破这个瓶颈。
五、实验中存在的问题
我个人觉的数字签名的过程有些复杂,以后能否发展到像非对称加密那样简单?。