李 锦,李晓宇
(郑州大学 计算机与人工智能学院,郑州 450001)
随着科技的发展,在线拍卖在生活中得到了普遍的应用.再加上近几年新冠病毒的出现,给人们的生活造成了很大的困扰,为了防止病毒的传播,应尽量少聚集,这就体现出在线拍卖在拍卖市场中的便捷性.有时竞拍者在线拍卖过程中不希望泄露自己的身份信息和位置信息(IP地址),因此研究匿名在线拍卖技术变得越来越重要.
在线拍卖中,匿名通信[1]可以使身份和位置信息得到保护,防止被恶意篡改,从而更加公平公正.Reed M G 等人[2]在美国海军实验室提出洋葱路由系统,可以完成隐私交流.贺道德等人[3]针对对等网络中的节点存在信任度低的问题提出洋葱路由的组合加密机制,具有很好的易用性.Kate A等人[4]提出一种新的洋葱路由匿名网络协议.在基于身份的基础设施设置中定义一个可证明安全的隐私保护密钥协议方案,所需的计算和通信量要少得多,允许洋葱路由匿名网络优雅地扩展.赵梦瑶等人[5]基于洋葱路由提出一种基于洋葱路由的双向匿名秘密通信协议,每个节点收到信息时都会检查是否有接收者,有效减少系统中的流量.Kita K等人[6]从内容生产者的不可链接性出发,严格定义生产者匿名性,设计一个IP中基于洋葱路由的系统以实现生产者匿名性.该系统以较少的开销提供与隐藏服务相当的匿名性.
近些年来在在线拍卖隐私保护方面,许多学者做出了显著的贡献.王小丽等人[7]提出一种基于匿名通信的拍卖协议.在通信过程中节点随机选择,有效防止窃听和流量分析.但平均响应时间较长,通信效率不高.Wu M等人[8]提出一种新的量子密封竞拍协议,该协议在可信第三方中心的帮助下采用量子认证和单粒子量子公钥,有效地防止拍卖人和竞拍者串通,具有更高的安全性和可行性.但需要引入诚实可信的第三方.Bárász M等人[9]提出一个加密协议的匿名密封出价拍卖.提议的方案允许在不使用可信第三方的情况下,识别至少一个违反协议的不诚实参与者.此外,要求投标书具有约束力.这是通过让所有参与者一致行动找出获胜者的身份来实现的,以防获胜者无法购买.但如果其中有不诚实的参与者,时间复杂度就会增加,最坏到O(n2).Srinath T R等人[10]开发一个多属性多轮逆向拍卖的安全协议.该方案可以有效地减轻拍卖人和竞买人的计算负担,能为卖方提供一个安全的投标环境,但需要引入可信的第三方.
本文将洋葱路由系统应用到在线拍卖过程中,提出一种利用洋葱路由的匿名在线秘密拍卖方案.竞拍者所在的节点事先选定一系列中转节点构成洋葱路径.每到一个中转节点,利用此节点的私有密钥解密洋葱路由最外一层,获取下一跳IP地址,直到发送给拍卖服务器.拍卖服务器用私钥解密最后一层得到对称密钥[11],用对称密钥解密密文得到报价信息.只有拍卖服务器能得到报价信息,并且拍卖服务器及任意一个中转节点都不知道竞拍者的身份信息.任意攻击者都不可能得到报价信息,也不知道竞拍者是谁,从而有效保护竞拍者的隐私.实验结果显示该方案具有较低的响应时间,随着节点的加入,响应时间缓慢增加,系统具有良好的健壮性.
1.1 在线拍卖
在线拍卖[12]是传统拍卖形式的网络实现.拍卖前,拍卖方在网上发布拍卖品的详细信息及拍卖规则,为了让竞拍者进一步了解竞拍物品也可以在网上展示拍卖品.在线拍卖可以减少实物由于移动损坏的风险,保证实物的安全,也可以更方便竞拍者,足不出户就可以竞拍.在线拍卖根据拍卖商品数量及商品最后的拍卖价格,拍卖网站可以分为两种竞拍方式:英式拍卖和荷兰式拍卖.其中英式拍卖是竞拍者在规定时间内竞价,出价最高者将得到物品.拍卖前卖家可以设置保留价,当最高竞价低于保留价时,拍卖方有权力不出售拍卖的物品.荷兰式拍卖适用于拍卖方要拍卖物品数量较多的情况.
1.2 利用洋葱路由的匿名通信模型
洋葱路由系统[13]使用原路由协议,发送者在目录节点所提供的列表中选择一组节点,事先规划好转发路径.用上一节点的公开密钥对下一节点的数据及IP地址进行加密,发送信息被一层层加密,形成洋葱路径.中转节点解密最外一层,得到下一跳IP地址,转发给下一跳,以此类推直到目的节点将洋葱路由最后一层解密,获得发送的原始信息.接收者回送给发送者信息时按原路返回,直到到达发送节点.每一跳洋葱路由节点都只能解密洋葱的最外一层,得到下一跳节点地址后转发给下一跳节点,与此同时,每个节点都会记录前驱节点IP地址.接收者在回送消息时也对数据进行层层加密,只不过加密的顺序与发送者加密的顺序相反.
所有节点加入一个公开密钥系统,所有节点的公开密钥都是开放的,私有密钥保密.服务器的身份是公开的,其它竞拍者不公开.记拍卖服务器的公开密钥为Epkr,私有密钥为Eskr.节点i的公开密钥为Epki,私有密钥为Eski.匿名在线拍卖模型示意图如图1所示.
图1 匿名通信模型Fig.1 Anonymous online auction scheme model
下面介绍利用洋葱路由的匿名秘密通信协议:
1)发送者生成一个AES密钥K0;
2)发送者选择一系列中转节点,构成一条路径:节点1、节点2、…、节点n .先用最后一个节点(节点n)的公开密钥加密接收者的IP地址,再把密文和节点n的IP地址合起来,用节点n-1的公开密钥加密,以此类推,构造一个洋葱路由头R=Epk1(IP2,Epk2(IP3,…,Epkn-1(IPn,Epkn(IPr,Epkr(K0)…).
路由表是一个存储在节点的电子表格,记录了从此节点经过的每一条信息,每一个节点都需建立路由表,每一项包含<序列码s,发送消息给自己的节点IP地址>.洋葱路由的匿名秘密通信模型中每个节点的路由表信息如表1所示.
表1 路由表结构Table 1 Routing table structure
发送者发送请求消息过程:
发送节点t0随机生成一个消息序列码s,用K0对明文消息P加密得到密文EP.将洋葱路由头R、密文EP及消息序列码s组合在一起形成请求消息
算法1.发送节点发送消息算法
1. 发送节点利用AES算法生成密钥;
2. 发送节点选择一系列中转节点,构成路径;
3. 获取各节点的公钥和IP地址,用接收者的公钥加密K0得到Rn=Epkr(K0),再用最后一个中转节点tn的公钥加密得Rn-1=Epkn(IPr,Rn),以此类推得到洋葱路由头R;
4. EP=K0(P)//用对称密钥K0加密明文消息P;
5. 将其与Seq组合形成请求消息REQ0=(R,EP,Seq);
6. 发送者将REQ0发送给第1个中转节点t1;
中转节点t1收到请求消息后,用私有密钥Esk1解密洋葱路由头R的最外层,得到下一跳t2的IP地址,把R的剩余部分R1,与密文EP和序列码s合起来得到请求消息
中转节点t2收到请求消息后,按照同样的方法发给第3个中转节点,同时中转节点t2记录下序列码s和上一跳节点的IP地址,存入路由表.依次转发,直到到达接收者.
算法2.中转节点转发发送消息算法
1. FOR i=1 TO i=n
2. 中转节点ti收到请求消息REQi-1=(Ri-1,EP,Seq);
3. Eski{Ri-1}=IPi+1//ti用私钥Eski解密Ri-1得到下一个节点的IP地址;
4. REQi=(Ri,EP,Seq);
5. ti在路由表记录
6. ti将请求消息REQi发送给节点ti+1;
7. END FOR
接收者使用自己的私有密钥Eskr解密余下的洋葱路由头,得到K0,用K0解密EP得到发送者的明文消息P.
算法3.接收节点接收发送消息算法
1. 接收者收到tn发送的请求消息REQn;
2. Eskr{Epkr(K0)}=K0;
3. K0{EP}=P;
4. 接收者在路由表中记录
到此为止完成一次节点发送请求消息.在发送请求消息的整个过程中,中转节点只知道上一跳和下一跳的IP地址,无法确定上一跳是否是发送者,也无法确定下一跳是否是接收者.每一个中转节点及接收者都无法获取请求消息的整个发送路径,消息经过层层加密由接收者解密最后一层得到明文消息,保证了消息的隐秘性.
接收者回复发送者过程:
接收者向发送者发送回复消息P′.用K0加密回复消息得密文EP′,将密文和序列码组合在一起形成报文
算法4.接收者发送回复消息算法
1. EP′=K0(P′);
2. 与序列码组合形成报文
3. Kr(
4. Epkn(Kr);
5. 组成REPr=( Kr(
6. 按序列码s在路由表中查找对应的IP,将回复消息发送到该IP,并删除该记录;
中转节点tn收到后,用私有密钥Eskn解密得到对称密钥Kr,用Kr解密得到报文
中转节点t1收到后,重复以上节点的工作,查找路由表,找到上一个节点(即接收者)t0,将回复消息返回给t0.
算法5.中转节点转发回复消息算法
1. 中转节点tn收到回复消息REPr;
2. Eskn{Epkn(Kr)}=Kr;
3. Kr{Kr(
4. Kn(
5. Epkn-1(Kn);
6. 回复消息REPn=( Kn(
7. 将REPn转发给tn-1,并删除该条记录;
8. 依次转发,直到发送节点接收到回复消息;
t0用私有密钥Esk0解密得到对称密钥K1,用K1对报文
算法6.发送者接收回复消息算法
1. 发送节点收到回复消息REP1;
2. Esk0{Epk0(K1)}=K1;
3. K1{K1(
4. K0{EP′}=P′;
整个过程中转节点及拍卖服务器不知道发送节点的位置,保证了发送节点匿名.
本文匿名在线秘密拍卖的核心思想是在整个拍卖过程中竞拍者采用洋葱路由匿名通信协议发送报价信息.在节点列表中选择节点创建路径,每到一个节点解析最外一层的地址,发送给下一个节点,从而实现对竞拍者的身份和位置(IP地址)隐私的保护.该方案采用英式拍卖[14]的竞拍形式,在规定时间内出价最高的竞拍者得到物品.
2.1 匿名拍卖过程基本思想
模型的基本思路是竞拍者作为发送者,拍卖服务器作为接收者.竞拍者采用利用洋葱路由的匿名通信技术将竞拍信息发送给拍卖服务器,以保证竞拍者的身份信息和地理位置信息不会被服务器及任意第三方获取.当竞拍者想要竞拍物品时,可以按照以下步骤:
Step1.拍卖服务器建立一个公示栏,公布竞拍物品种类、拍卖品的拍卖规则、拍卖保留价、拍卖物品的截止日期、保证金金额及拍卖服务器账户等,所有用户都可以看到.
Step2.竞拍者构造自己的竞拍信息AInfo(包含ID号、商品、出价).竞拍者将保证金汇入指定账户,并在汇款时备注序列码.竞拍者随机构造一条洋葱路径,竞拍者将竞拍信息AInfo发送给第1个节点,依次转发最终到达拍卖服务器.
Step3.拍卖服务器收到AInfo,沿原路回送一条表示投标申请已收到的信息给竞拍者.在截止期限到期之后,拍卖服务器只考虑缴纳保证金的竞拍者,选择出价最高的,在公示栏上公布.
Step4.中标者在截至日期之前将竞拍物品余下金额通过银行汇入指定账户,同时将ID号,序列码和汇款凭据通过匿名通信方式发送给拍卖服务器.逾期未缴纳剩余金额的中标者视为自动放弃,保证金没收.未中标竞拍者的保证金按原路退回个人账户.
Step5.拍卖服务器确认中标者已付款,回送给中标者一条表示汇款凭据已收到的信息,交易完成,在公示栏中予以公布并删除原竞拍物品.中标者领取拍卖货品采用线下交接的方式另行安排.
2.2 利用洋葱路由的匿名在线秘密拍卖方案
本文拍卖协议需要用到的符号定义如表2所示.
表2 相关符号定义Table 2 Definition of correlation symbois
2.2.1 拍卖服务器任务发布
网络中所有节点和拍卖服务器都加入RSA公开密钥系统.竞拍者使用自身所处节点的公开密钥-私有密钥对.所有竞拍者随机生成一个32位的二进制字符串作为ID号,ID号和节点对应关系除竞拍者自己,任意节点(包括服务器)都不知道.拍卖服务器在公示栏公布竞拍物品种类、每种拍卖品的拍卖规则、拍卖物品的截止日期、保证金金额以及服务器账户等.针对每种拍卖品的信息都应在公示栏中公告,以体现拍卖的公开性及公平性.
2.2.2 竞标
竞拍者构造竞拍信息(包含ID号、商品、出价).竞拍者随机构造一条洋葱路径,在物品截至日期之前通过洋葱路径将竞拍信息三元组AInfo=(ID,Commodity,Bidid)(其中ID为ID号,Commodity为商品名称,Bidid为出价)发送给洋葱路径的第一个节点,经过洋葱路径中的节点依次转发,最终到达拍卖服务器.拍卖服务器收到竞拍信息后,沿原路回送一条表示投标申请已收到的确认信息给竞拍者.
为了防止恶意竞拍者中标后拒不付款造成拍卖失败,增加竞拍者缴纳保证金环节.竞拍者事先采用银行汇款方式将保证金汇入拍卖方指定账户,在汇款备注上填写自己的ID号.
拍卖服务器收到一条竞拍信息后核对该竞拍者是否已经缴纳保证金,如果没有缴纳,直接返回“拒绝接受竞拍”.如果竞拍者中标之后拒不付款,则保证金没收,竞拍重启并且禁止该竞拍者再参与新一轮竞拍.
算法7.竞标环节算法
1. 竞拍者利用AES算法生成密钥;
2. 竞拍信息AInfo=(ID,Commodity,Bidid);
3. bidder将保证金汇入公示栏提供的账户;
4. bidder构造洋葱路由头R;
5. EP=K0(AInfo);
6. 与Seq组合形成请求消息REQ0=(R,EP,Seq) //Seq是竞拍者生成的随机数,是唯一的;
7. t1收到请求消息REQ0;
8. Esk1{R}=IP2;
9. REQ1=(R1,EP,Seq);
10. t1在路由表记录
11. t1将REQ1发送给下一节点t2;
12. 最后一个中转节点tn将请求消息REQn=(Rn,EP,Seq)发送给拍卖服务器server;
13. server收到请求消息REQn;
14. Eskr{Rn}=K0,K0{EP}=AInfo;
15. server在路由表中记录
16. server从AInfo中得到ID,然后与银行账户收款记录备注中的ID号对比;
17. IF(两者ID相同)
18. 返回确认信息,记录竞拍信息并执行算法8,;
19. ELSE
20. server回复竞拍者“拒绝接受竞拍”,执行算法4、5、6;
21. END IF
2.2.3 开标
到截止时间后,拍卖服务器查看所收到竞拍信息,根据快速排序算法对缴纳保证金的竞标者的标价进行排序,选择最高价.在公示栏公布中者ID号、商品名称和出价及其他竞标者的竞拍信息.中标者将竞拍物品总价减去保证金余下的金额通过银行汇入指定账户,逾期未缴纳视为自动放弃,保证金没收.没有中标的保证金退回个人账户.
若最高价有多个竞拍者投,拍卖服务器公布投了最高价的竞拍者们并宣布进入下一轮竞拍.其它竞拍者取消资格,再次发送竞拍信息,拍卖服务器会拒绝接受.竞拍方法与之前一致,新一轮的竞拍中,拍卖起拍价变为上一轮的最高价,重复竞拍过程,直到选出唯一一个最高价.
算法8.开标环节算法
1. server CHECK AInfo=(ID,Commodity,Bidid);
2. QuickSort={ Bidid};
3. QuickSort(A,p,r)
4. if p 5. q=Partition(A,p,r) 6. QuickSort(A,p,q-1) 7. QuickSort(Q,q+1,r) 8. End 9. Partition(A,p,r) 10. x=A[r] 11. i=p-1 12. for j=p to r-1 13. do if A[j]<=x 14. then i=i+1 15. exchange A[i]<->A[j] 16. exchange A[i+1]<->A[r] 17. return i+1 18. End 19. RETURN QuickSort[length-1]; 20. CHECK最高价Bid对应的ID; 21. IF(ID有多个) 22. RETURN Bid对应的ID集合M; 23. Bid视为拍卖起价; 24. 集合M执行算法7,算法8; 25. ELSE 26. RETURN Bid及其ID; 27. END IF 28. server公布中标者的ID,商品名以及Bid; 29. IF(中标者按时将钱汇入指定账户) 30. 执行算法9; 31. ELSE 32. 没收保证金,本次拍卖作废; 33. END IF 34. server退回未中标者保证金至个人账户; 2.2.4 支付和验证 中标者(比如是Bob)通过银行将剩余金额汇入指定账户,同时将ID号、序列码和汇款凭据通过洋葱路由匿名通信方式发送给拍卖服务器.为防止拍卖服务器通过银行转账信息获知中标者身份和位置隐私,中标者使用银行或者第三方代理机构提供的匿名转账账户来汇款.第三方代理机构有法律义务对汇款者的身份保密,不得泄露给任何人或者机构.拍卖服务器收到款项和汇款凭据之后,确认中标者已付款,通过匿名通信方式回复确认信息CInfo给中标者,至此交易完成.在这里确认信息中签名需要使用拍卖服务器的私钥签名,以供线下交接拍卖物品时验证.在公示栏予以公布中标者ID号及“已收到全额汇款:XXX元”.宣布此次拍卖结束,并删除原竞拍物品.中标者领取拍卖货品采用线下交接的方式另行安排. 算法9.支付及验证环节算法 1. Bob将钱汇入指定账户; 2. 将ID号、Seq和汇款证据发送给拍卖服务器; 3. server收到信息后,核对转账数据和身份; 4. 确认是中标者汇款,生成确认信息CInfo; 5. EP′=K0(CInfo),Mr=Kr(EP′,s); 6. 根据路由表中记录 7. server获取tn的公钥Epkn,Nr=Epkn(Kr); 8. 与Mr=Kr(EP′,s)组成回复消息REPn=(Mr,Nr); 9. server删除路由表中记录 10. tn收到回复消息REPn; 11. Eskn{Epkn(Kr)}=Kr,Kr{Kr(EP′,s)}=s; 12. FOR i=n TO i=2 13. ti根据记录 14. ti获得ti-1的公钥Epki-1,Ni=Epki-1(Ki); 15. 与Mi=Ki(EP′,s)组成REPi-1=(Mi,Ni); 16. ti删除路由表中记录 17. ti-1收到回复消息REPi-1; 18. Eski-1{Epki-1(Ki)}=Ki,Ki{Ki(EP′,s)}=s; 19. END FOR 20. t1根据记录 21. t1获取Bob的公钥Epkb,N1=EpkBob(K1); 22. 与M1=K1(EP′,s)组成REPb=(M1,N1); 23. t1删除路由表中记录 24. Bob收到t1发送的回复消息REPb; 25. Eskb{Epkb(K1)}=K1,K1{K1(EP′,s)}=EP′; 26. Bob获取自己的对称密钥K0; 27. K0{EP′}=CInfo; 28.server公布拍卖完成信息; 本方案在信息发送过程中有可能收到攻击者威胁.攻击者是网络中(或者网络外)的任意节点,它可能监听和截获节点之间的通信,也可能被选为中转节点,还可能采用黑客手段入侵和控制某些节点.攻击者的目的是发现获取竞拍者的身份和IP地址.另外,拍卖服务器也可能试图获取竞拍者的身份和IP地址. 定理1.除竞拍者以外任意节点都不能获知竞拍者的位置和身份隐私. 证明:竞拍者构造洋葱路径加密信息里只有K0,中转节点只对洋葱路由最外一层解密.转发路径是竞拍者构造好的,中转节点无法获知上一节点的身份,也就无法获知竞拍者的位置隐私.拍卖服务器也是只知道上一跳的IP地址,无法确认上一跳是否是竞拍者. 拍卖服务器发送回复消息时,各节点通过查询路由表,回复消息按原路返回,任意节点无法获知竞拍者的位置. 定理2.竞拍信息隐私:中转节点及攻击者都无法获取竞拍的具体信息. 证明:竞拍者用对称密钥K0加密明文形成密文,用拍卖服务器的公钥Epkr加密K0,根据洋葱路径选择的节点顺序用最后一个节点的公钥Epkn加密Epkr(K0)及拍卖服务器的IP地址,以此类推,形成洋葱路由头.中转节点只解密最外层洋葱,得到下一跳IP地址.到拍卖服务器时解密得到密文.只有拍卖服务器利用私有密钥Eskr解密得到对称密钥K0,其他任意节点都无法获取,也就无法获取竞拍者发送的竞拍信息. 根据匿名拍卖方案不难看到,在所有中转节点都是忠实的情况下,竞拍者的身份和位置隐私百分百得到保护.如果中转节点中存在恶意节点,拍卖服务器与恶意节点串通,就有可能沿着转发路径追溯到竞拍者.定义匿名度: D=1-P (1) P为拍卖服务器追溯到竞拍者的概率.假定网络中除了拍卖服务器和竞拍者本人之外一共有N个节点,其中含有m个恶意节点.竞拍者随机选择L个节点生成洋葱路径,容易看到,如果路径长度L>m,则转发路径中一定有非恶意节点,那么拍卖服务器追溯到竞拍节点是不可能的,所以匿名度D=1.如果L≤m,则匿名度计算如下.第1个中转节点恰好为恶意节点的概率为: (2) 依次类推,L个中转节点恰好均为恶意节点的概率为: (3) 所以: (4) 图2表示转发路径L分别等于3,4,5时,匿名度与恶意节点比例的关系.随着恶意节点比例增大,匿名度不断降低,跟预期是一样的,恶意节点越多,与拍卖服务器同谋的节点越多,同谋的节点获取竞拍节点身份的概率就越大.此外,转发路径越长,相应的拍卖服务器追溯到竞拍者的概率就越小,匿名度越大.最后,即使是L=3的最短路径下,假定恶意节点比例为50%,匿名度仍然高达0.88,而现实中恶意节点比例通常远远低于50%,因此,本方案具有很好的匿名性. 图2 匿名度-恶意节点比例关系图Fig.2 Anonymity-proportion diagram of malicious nodes 3.3.1 安全性 竞拍者采用构造洋葱路径的方式确定转发路径.竞拍信息通过洋葱路由层层加密,中转节点只解密最外层,只有拍卖服务器才能解密竞拍信息,其他拍卖者不能获取,保证了竞拍信息的安全到达. 为防止攻击者冒充竞拍者给拍卖服务器发送信息以干扰拍卖过程,拍卖服务器收到竞拍信息之后,使用自己的私钥对ID号进行签名并将签名附在确认信息之后一起回复给竞拍者.由于ID号是竞拍者生成的,其它任何人都无法知道.只有等到竞拍截至,拍卖服务器在公告栏公布所有竞拍信息时,ID号才公诸于众.后续竞拍者与拍卖服务器再通信时,必须提供(ID号,ID号签名),拍卖服务器验证签名通过之后才与之通信,否则拒不接收对方发来的任何信息.因为其它人都不可能获得ID号签名,所以攻击者无法仿冒竞拍者. 3.3.2 健壮性 在构造洋葱路径时,竞拍者首先通过查询网络路由器或者广播查询信息,确定当前活跃节点集合.然后在活跃节点集合中随机选择选取一组转发节点.构造洋葱路由,层层加密,实现竞拍信息及位置隐私的保护.洋葱路径上的节点选择是随机的,不依赖于特定的节点,因此方案具有较好的健壮性. 当然,现实中由于洋葱路径中某个节点的突发故障引起通信失败是无法彻底杜绝的,但是这种概率很小,一般情况下系统仍然能正常运行. 3.3.3 竞拍者违约规范 为防止恶意竞拍者中标之后拒不付款导致流标,拍卖服务器提出竞拍者缴纳保证金这一环节.参与竞拍的竞拍者都需缴纳保证金,未缴纳视为作废.公布竞拍情况时会公布作废的竞拍信息.中标者需在规定期限内缴纳剩余金额,没有按时缴纳则默认自动放弃,保证金将被没收,此次拍卖作废. 为了验证本文提出的利用洋葱路由的匿名在线秘密拍卖方案的可行性,设计了此次实验. 硬件环境:CPU为Intel(R)Core(TM)i5-9300H;主频为2.40 GHz;内存为16.0 GB;操作系统为:Windows 10 家庭中文版.实验的开发工具:IntelliJ IDEA Community Edition 2021.3,jdk-16.0.1,编程语言为:JAVA. 实验中设置网络中节点个数为50,选取不同的中转路径长度L,分别做了200次模拟实验.记录拍卖服务器在不同情况下收到竞拍信息所需时间,求出平均响应时间.从图3可以看出,节点个数一定时,随着L增加,平均响应时间缓慢增加.实验中平均响应时间均在6秒内,说明该方案具有较好适应性,即使中转路径增长也可以稳定运行. 图3 平均响应时间-平均路径长度关系图Fig.3 Average response time -average path length diagram 图4表示节点数目不同时,平均响应时间随中转路径长度L的变化,分别取中转路径长度为5,10,15.对每一种情况分别做了200次模拟实验,求出拍卖服务器在不同情况下的平均响应时间.当节点数目一定时,平均响应时间会随着L的增加而增大.L一定时,平均响应时间会随着节点数目的增加而增大.由于发送节点的增加,转发信息所需时间就会增加,从而会增大平均响应时间.节点数目和平均响应时间呈近似线性关系,随着系统中节点数目增加,系统也可以稳定运行. 图4 平均响应时间-节点个数关系图Fig.4 Average response time-number of nodes diagram 图5给出了随着节点总数的增加,本文所提出的方案和王小丽等人[7]以及Zhang T等人[15]所提出方案的平均响应时间的对比.本文选取中转路径长度为5时的平均响应时间.王小丽等人[7]分别测试了Pf=0.25,Pf=0.5和Pf=0.75时的平均响应时间,选取Pf=0.75时的平均响应时间.Zhang T等人[15]分别测试了4个内容块下MOAC和MRAC的平均响应时间,8个内容块下MOAC和MRAC的平均响应时间,选取8个内容块下MRAC的平均响应时间.当节点总数一样时,本方案的平均响应时间低于另外两种方案.随着节点总数的增加,3种方案的平均响应时间随着节点总数增加而增大且呈线性关系,但是本方案增加的幅度更小,说明本方案效率高且有更好的稳定性. 图5 平均响应时间对比Fig.5 Comparison of average response times 本文提出了一种利用洋葱路由的匿名在线秘密拍卖方案.竞拍过程中所有节点和拍卖服务器都无法获取竞拍者的位置信息,竞拍信息只有拍卖服务器能够解密得到.实验表明,该方案可以支持网络中多个竞拍者顺利完成拍卖,系统平均响应时间随节点数量增长而近似呈线性缓慢增长,具有较好的稳定性和可扩展性.洋葱路径选择是随机的,不依赖于特定的节点,因此方案具有较好的健壮性.下一步研究是对方案如何改进来提高通信效率.3.1 匿名性
3.2 匿名度计算
3.3 本方案的优越性
4.1 实验环境及参数配置
4.2 实验结果及分析
4.3 对比试验