基于椭圆曲线算法的移动小额可分支付

来源:互联网 发布:select sql语句 编辑:程序博客网 时间:2024/04/28 23:50

随着科技发展,移动电子商务已逐步进入人们的日常生活,在移动电子商务中网络银行和网络购物等商务活动的出现正在逐渐改变着人们的购物方式、消费观念和生活理念。

移动可分小额支付技术提供一个能安全支付的移动电子商务系统,用户需要交易前,先到银行取出电子现金,交易的每一笔现金不必由银行签发,然后独立、分批次地消费出电子现金。本文所设计的移动可分电子现金在保证了电子现金支付的正确性、不可伪造性、重复花费者身份的可揭示性、面额的可分性、电子现金流通的公平性的同时,具有更小的计算量、存储量、内存占用以及更高的在线处理效率,更适用于计算能力、存储空间、内存空间、网络传输流量及电源供给均非常有限的个人移动支付设备。

本系统主要通过研究椭圆曲线、盲签名技术,设计了移动可分小额支付系统的主要协议,包括开户协议、取款协议、支付协议和存款协议。

椭圆曲线密码系统

类似RSA系统存在大数分解或求离散对数难解问题,椭圆曲线密码技术的的难解问题加法操作和数乘操作。等式Q=kP,其中PQ是椭圆曲线上的点。由kP易求Q,反之由PQk却相当困难,这称为椭圆曲线上的离散对数问题(Elliptic Curve Discrete Logarithm ProblemECDLP)。

椭圆曲线公钥密码算法

目前椭圆曲线上的公钥密码体制倍受关注,普遍认为椭圆曲线公钥密码体制[31]有较好的安全性和加解密速度快的特点。因而出现了许多椭圆曲线公钥密码的有效算法。下面介绍本文使用的椭圆曲线公钥密码算法。  

1)椭圆曲线的建立:

Fp有限基域上定义椭圆曲线Ey2=x3+ax+bE上的一个素数阶为n的点P=(xP,yP),其中椭圆曲线参数ab,以及点P和阶n均公开。

2)密钥生成:

根据设计好的系统,用户可以执行下列计算:

[1,n-1]中随机选取一个整数d,作为用户的私钥。

计算公钥点Q=dP

3)加密算法:

AB发送信息m时,A执行下列步骤:

先查找用户B的公钥Q

将信息m转化为E(Fp)上的点Mmym) 。

[1,n-1]中选取一个随机整数k

计算点C0=kP

计算点C1=M+kQ

传递加密数据(C0, C1)给用户B

4)解密算法:

B对从A收到的密文(C0, C1)进行解密。B执行下列步骤:

使用B的私钥d,计算点M=C1-dC0

从点M中取出横坐标m即恢复出数据m

基于ECDLP的盲数字签名和验证

普通数字签名时签名者总是要先知道数据中的内容,再实施签名,这是通常办公事务流程。有时需要某个人对数字签名,但不能让他知道数据内容,称为盲签名技术D.Chaum1983 年首先提出了盲签名[32],因为具有盲性,可以有效保护所签署的消息,所以在电子商务、电子选举等领域得到广泛应用。

盲签名允许消息拥有者先盲化消息,然后让签名者对盲化的消息签名,最后消息拥有者对签名去盲变换,得到签名者关于原消息的签名。它的协议包含:发送者用盲因子盲化消息,然后把盲化消息发送给签名者,即消息盲化;签名者在不知道真实消息的具体内容的情况下签名盲消息,即盲消息签名;发送者去盲因子,得到原消息的签名,即恢复签名。 

盲签名除了满足一般数字签名条件外,还须满足以下两条性质:

1)签名者看不见其所签署的消息的具体内容。

2)不可追踪签名消息。即公布了签名消息后,签名者无法知道这是他哪次签署的。

D.Chaum曾经给盲签名一个非常直观的说明:盲签名就是先在信封里放进隐蔽的文件,而打开这个信封就是除去盲因子的过程,任何人不能阅读在信封中的文件。对文件签名即通过放一张复写纸在信封里,在信封上签名时,通过复写纸签名便签到文件上。

安全的盲签名应具有下列性质:

1)最基本的性质:不可伪造性,即其他任何人都不能以签名者的名义生成有效的盲签名。

2)不可抵赖性。即签名者无法否认自己对消息的签名。

3)盲性。签名者即使签名了某条消息,他也不可能知道消息的具体内容。

4)不可跟踪性。一旦消息的签名公开,签名者不能知道这条消息是自己何时签署的。

这四条性质既是设计的标准,又是判断性能优劣的根据。

代码基于c++实现,只是出于研究目的。

 

GitHubhttps://github.com/ziyunhx/MobliePay

本文来自 NewIdea 的博客,作者 ziyunhx 。

原文地址:http://www.cnblogs.com/NewIdea/p/MobliePay.html

转载请注明出处,否则拒绝转载!

原创粉丝点击