CN109345438B - 一种隐私保护的联盟打车方法及系统 - Google Patents

一种隐私保护的联盟打车方法及系统 Download PDF

Info

Publication number
CN109345438B
CN109345438B CN201811181539.6A CN201811181539A CN109345438B CN 109345438 B CN109345438 B CN 109345438B CN 201811181539 A CN201811181539 A CN 201811181539A CN 109345438 B CN109345438 B CN 109345438B
Authority
CN
China
Prior art keywords
unit
module
cloud service
alliance
passenger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811181539.6A
Other languages
English (en)
Other versions
CN109345438A (zh
Inventor
祝烈煌
李萌
张子剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201811181539.6A priority Critical patent/CN109345438B/zh
Publication of CN109345438A publication Critical patent/CN109345438A/zh
Application granted granted Critical
Publication of CN109345438B publication Critical patent/CN109345438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06Q50/40
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/383Anonymous user system

Abstract

一种隐私保护的联盟打车方法及系统,属于匿名认证、隐私保护以及区块链技术领域。包括多个打车云服务提供商共享用户的数据组件联盟打车平台,乘客向路边节点发送联盟打车请求,路边节点验证乘客的身份和数据,在自己的覆盖区域内广播该请求,收到广播的司机向路节点发送联盟打车响应;路边节点验证司机的身份和数据,将匹配的司机信息发送给对应的乘客;乘客与司机联系后向路边节点发送确认信息,开始联盟打车,乘客向司机匿名支付车费;路边节点维护联盟区块链。所述打车方法及系统为乘客及时提供打车服务,为云服务提供商提供商业利益,保护用户隐私和云服务提供商商业机密,在现有协议基础上降低计算开销和通信开销。

Description

一种隐私保护的联盟打车方法及系统
技术领域
本发明涉及一种隐私保护的联盟打车方法及系统,属于匿名认证、隐私保护和区块链技术领域。
背景技术
使用实名方式提交打车服务,虽然能够保证实用性,但是会暴露以乘客与司机为主的用户的隐私。因此,近年出现了多个隐私保护的打车方法。隐私保护的打车方法一般包括四个参与方:乘客(Rider)、司机(Driver)、云服务提供商(Service Provider)和证书颁布中心(Certificate Authority);其中,乘客希望获取打车服务,司机提供打车服务,云服务提供商是提供打车服务的平台,证书颁布中心是用户注册机构。
隐私保护的打车方法具体实施过程包括五大主要步骤:(1)乘客和司机向证书颁布中心注册,获取匿名证书;(2)乘客向云服务提供商提交匿名证书并验证自己的合法身份,提交打车请求;(3)云服务提供商广播乘客的打车请求,响应该打车请求的司机向云服务提供商提交匿名证书并验证自己的合法身份;(4)云服务提供商对乘客和司机进行匹配,并将该匹配结果返回给乘客和司机;(5)司机驾车载乘客向乘客的目的地出发,联盟打车过程结束后,乘客向司机支付车费。
现有的隐私保护的打车方法研究主要集中于解决在打车服务过程中用户隐私泄露给云服务提供商的问题,但是有些方法使用明文信息对乘客和司机进行匹配,或者云服务提供商能够在不依赖第三方的情况下揭露用户的真实身份,这都直接暴露了用户的隐私,也有些方法未能在乘客和司机之间建立对称会话密钥,或者无法抵挡用户的提前兑现攻击。
我们观察到,在现有的打车方法往往是独立工作,他们必然会遇到信息孤岛问题。例如,滴滴的乘客在附近没有滴滴司机时,则无法获取打车服务。此时,如果所有打车云服务提供商之间形成联盟、共享用户数据、形成联盟打车,好处是显而易见的:乘客及时获取打车服务,司机接到更多打车订单而获利,云服务提供商获得更多商业利润并根据用户的联盟打车体验反馈提升自己的服务水平,联盟打车也能提高道路流通性、减缓交通拥堵和降低汽车尾气排放量。但是,在此场景下,不仅用户有隐私需要保护,包括身份、上车位置、打车条件和目的地,云服务提供商也有自己的商业机密需要保护,例如当滴滴的司机一直在某个区域内街道Uber的乘客时,那么滴滴就会知道Uber在此区域内的司机数量不够,便可召集更多的司机来此区域进而占领市场;另外,打车的收费标准以及云服务提供商从一次打车中获取佣金的标准都是公开的,如果云服务提供商的身份不被保护,那么他们每次从联盟打车获取的佣金也会被计算出,从而暴露了自己在联盟打车中获得的利润,这都就暴露了他们的商业机密。所以,我们有必要基于该场景下的用户需求,探索隐私保护的联盟打车方法及系统。
发明内容
本发明的目的在于为用户提供联盟打车服务,为云服务提供商增加商业利益,保证隐私保护的联盟打车方法中的以乘客与司机为主的用户的隐私和云服务提供商的商业机密不被泄露,验证用户发送的当前位置的正确性,阻止云服务提供商和路边节点的合谋攻击,实现乘客与司机之间的匿名支付,在现有技术基础上降低计算开销和通信开销,提出了一种隐私保护的联盟打车方法及系统。
本发明的核心思想是:路边节点单元即雾结点单元本地处理乘客的打车请求与司机的打车响应,乘客模块与司机模块的匹配结果和联盟打车记录给区块链,把加密的打车数据给云服务提供商单元,在联盟打车过程结束后,乘客向司机匿名支付车费,具体为:首先,乘客模块向证书颁布中心单元与云服务提供商单元注册,登录与云服务提供商单元建立连接,向本地路边节点单元发送匿名证书、加密的联盟打车请求、押金和签名,路边节点单元收到该匿名证书、加密的联盟打车请求和签名后匿名验证乘客的身份以及签名的合法性,上述身份及签名验证通过后,路边节点单元向本区域内广播联盟打车请求;其次,响应该广播联盟打车请求的司机模块将匿名证书、加密的联盟打车响应和签名发送给路边节点单元,路边节点单元利用预先配置好的智能合约为乘客模块寻找匹配的司机模块,若找到匹配的司机模块,路边节点单元生成联盟打车记录,将该匹配信息发送给乘客模块和司机模块,将乘客模块的匿名证书与加密的联盟打车请求和司机模块的加密的联盟打车响应发送给云服务提供商单元,将押金和联盟打车记录上传到联盟区块链,联盟区块链是一个内部共享的账本,由所有云服务提供商模块和所有路边节点模块共同存储和维护;乘客模块与司机模块建立临时会话密钥,协商上车地点和目的地,开始联盟打车过程直至完成联盟打车过程,乘客模块向司机模块基于匿名支付方法支付车费,从联盟区块链匿名取回剩余押金,路边节点单元将匿名支付信息与匿名押金取回信息上传到联盟区块链,司机模块从所属云服务提供商单元取回车费,支付佣金;最后,若有恶意行为的乘客模块或司机模块出现,所有云服务提供商联合后在不依赖可信方的情况下恢复出该乘客模块或司机模块的真实身份。
一种隐私保护的联盟打车方法及系统包括一种隐私保护的联盟打车方法及一种隐私保护的联盟打车系统;一种隐私保护的联盟打车系统以一种隐私保护的联盟打车方法为核心技术协议;
本发明是通过以下技术方法现的:
所述打车系统包括证书颁布中心模块、云服务提供商模块、路边节点模块、乘客模块和司机模块;证书颁布中心模块包括证书颁布中心参数设定单元和证书颁布中心注册处理单元;云服务提供商模块包括云服务提供商参数设定单元、云服务提供商注册处理单元、登录处理单元、联盟链维护单元、数据库维护单元、费用管理单元、用户身份恢复单元和登出处理单元;乘客模块包括;乘客注册单元、乘客登录单元、请求单元、支付单元和乘客登出单元;路边节点模块包括路边节点注册单元、路边节点登录单元、验证单元、路边节点响应单元、匹配单元、路边节点联盟链维护单元和路边节点登出单元;司机模块包括司机注册单元、司机登录单元、司机响应单元、收费单元和司机登出单元。
所述打车系统中各单元的连接关系如下:
证书颁布中心模块参数设定单元连接云服务提供商参数设定单元,证书颁布中心注册处理单元连接乘客注册单元、路边节点注册单元和司机注册单元;云服务提供商注册参数设定单元连接证书颁布中心参数设定单元,云服务提供商注册处理单元连接乘客注册单元、路边节点注册单元和司机注册单元,登录处理单元连接乘客登录单元、路边节点登录单元和司机登录单元,云服务提供商联盟区块链为主单元连接路边节点联盟区块链维护单元,数据库维护单元连接匹配单元和路边节点联盟区块链维护单元,费用管理单元连接收费单元,登出处理单元连接乘客登出单元、路边节点登出单元和司机登出单元;
乘客注册单元连接证书颁布中心注册处理单元、云服务提供商注册处理单元和乘客登录单元,乘客登录单元连接登录处理单元、请求单元和支付单元,请求单元连接验证单元、匹配单元和支付单元,支付单元连接路边节点联盟区块链维护单元和乘客登出单元,乘客登出单元连接登出处理单元;
路边节点注册单元连接云服务提供商注册处理单元和路边节点登录单元,路边节点登录单元连接登录处理单元和验证单元,验证单元连接路边节点响应单元,路边节点响应单元连接匹配单元,匹配单元连接请求单元、司机响应单元和路边节点联盟区块链维护单元,路边节点联盟区块链维护单元连接提供商联盟区块链维护单元和路边节点登出单元;司机注册单元连接证书颁布中心注册处理单元、云服务提供商注册处理单元和司机登录单元,司机登录单元连接登录处理单元、司机响应单元和收费单元,司机响应单元连接验证单元和收费单元,收费单元连接路边节点联盟区块链维护单元、费用管理单元和司机登出单元,司机登出单元连接登出处理单元。
所述打车系统中各模块的功能如下:
证书颁布中心模块中各单元的功能如下:证书颁布中心参数设定单元的功能是生成所有云服务提供商公用的群公钥与群私钥,将群私钥的秘密分享分发给所有云服务提供商模块,选择联盟打车系统使用的签名及公钥加密算法RSA对称加密算法AES,以及生成所有云服务提供商的公钥与私钥;证书颁布中心册处理单元的功能是为用户注册并生成密钥和匿名密钥,并用其他云服务提供商的公钥对用户的身份和密钥进行加密,以及为该密钥和密文进行签名;
云服务提供商模块中各单元的功能如下:云服务提供商参数设定单元的功能是联合其他所有云服务提供商参数设定单元一起划分联盟打车区域,为所有子区域进行编号,将所有区域按照二叉树的结构进行管理,根节点的编号为1,编号从上至下、从左至右地增加,选择环境信号过滤函数、Bloom过滤器、哈希函数族、消息认证码和三个伪随机函数,构造匿名支付方法和智能合约;其中,所述匿名支付方法不同于原匿名支付方法Zerocash,乘客模块在进行拆分交易时,和司机模块共同选择随机数以用于完成拆分交易;云服务提供商注册处理单元的功能是联合所有云服务提供商注册处理单元根据用户发送的匿名密钥、密文和签名,验证签名的合法性;登录处理单元:为合法的用户模块和路边节点模块在提交登录请求后分发登录令牌,与该用户模块和路边节点模块建立连接;云服务提供商联盟链维护单元:设置区块链的初始阶段和第一阶段,验证和存储路边节点模块发来的货币和交易;数据库维护单元:所有云服务提供商存储用户的匿名密钥、密文和签名,并且存储区块链中的货币、交易和用户加密后的联盟打车数据,许可路边节点模块进行区块链的维护;车费管理单元:当有司机模块向车费管理模块兑现车费时,车费管理模块验证该车费的有效性,若有效,则收取佣金,返回给司机剩余车费,否则拒绝该司机模块兑现车费;用户身份恢复单元:当有目标用户模块出现时,所有云服务提供商联合恢复出群私钥,根据该用户的联盟打车信息恢复出该用户的匿名密钥,该用户的所属云服务提供商找到对应的身份和密钥的密文,由其他云服务提供商解密,恢复出该用户的身份和密钥,最终解密得到该用户之前的联盟打车数据,其中,目标用户模块是指有恶意行为的目标用户模块;登出处理单元:为合法用户模块和路边节点模块提交登出请求后删除该用户模块和路边节点模块的登录令牌,删除连接;
乘客模块:乘客注册单元的功能是向证书颁布中心注册,获得密钥、匿名密钥、身份和密钥的密文,以及证书颁布中心对密文的签名,乘客生成多个临时公私钥、密钥族、哈希函数族和多个公/私有地址,乘客向所属云服务提供商注册并留存匿名密钥、密文和签名,从所属云服务提供商实名购买虚拟货币;乘客登录单元的功能是所属云服务提供商发送登录请求,并通过匿名身份验证,准备发送联盟打车请求,或者进入支付单元支付之前未支付的联盟打车订单;请求单元的功能是生成两笔存钱交易,计算匿名身份,在一定时间段内收集环境信号,生成位置标记和临时公私钥,向位置标记中嵌入该临时公钥,将当前位置转化为Bloom过滤器,对公钥和私钥组进行加密,将司机条件和目的地转化为双Bloom过滤器,生成联盟打车数据包和联盟打车请求,计算匿名证书和签名,将两笔交易、匿名身份、联盟打车请求、匿名证书和签名发送给路边节点,在路边节点为自己匹配司机后,收到路边节点发来的司机信息,其中,双Bloom过滤器是指由两个Bloom过滤器组成的一种Bloom过滤器变种,具体为:双Bloom过滤器有两个Bloom过滤器,它们的编号分别为0和1,双Bloom过滤器的输入在经过一次哈希函数后,得到一个Bloom过滤器的编号,再经过一次哈希函数,得到上述Bloom过滤器的位置,并将该位置的数值设置为1;支付单元的功能是生成拆分交易,具体为:将先前存的两个旧货币拆分成两个新货币,一个给司机作为车费,另一个作为返回给自己的余款,并向路边节点联盟区块链维护单元发送该拆分交易;乘客登出单元的功能是向所属云服务提供商发送登出请求并退出系统;
路边节点模块:路边节点注册单元的功能是向云服务提供商模块注册并获得公有地址、私有地址、用于签名的公私钥对和云服务提供商的签名;路边节点登录单元的功能是向所属云服务提供商发送登录请求,通过实名身份认证,并准备接收乘客的联盟打车请求以及为乘客模块匹配合适的司机;验证单元的功能是验证乘客和司机的匿名证书和签名的合法性,如果通过验证,则为该乘客和司机提供服务,否则丢弃数据包,路边节点验证乘客的存钱交易和拆分交易,如果通过验证,则广播交易,否则丢弃该两笔交易并拒绝为该司机寻找司机模块;路边节点响应单元的功能是验证乘客的存钱交易和联盟打车请求后,向自己覆盖区域内广播联盟打车请求;匹配单元的功能是在接收并验证司机的联盟打车响应后,为乘客匹配合适的司机,并将匹配结果发送给乘客和司机,在收到乘客和司机的确认后,向所有云服务提供商发送乘客和司机的联盟打车数据包,生成联盟打车交易,对该联盟打车交易签名;路边节点联盟区块链维护单元的功能是广播乘客模块的货币和存钱交易,验证其他路边节点模块发来的货币和交易,根据领头节点选择函数选择出当前阶段的领头节点,由该领头节点创建新块,将该新块广播;路边节点登出单元的功能是向所属云服务提供商发送登出请求并退出系统,其中,领头节点是指由所有路边节点通过领头节点选择函数选择出的一个路边节点,领头节点选择函数的输入包含所有路边节点的公共地址、被选概率、存量和当前时间段,输出是一个路边节点的身份;
司机模块:司机注册单元的功能是向证书颁布中心注册,获得密钥、匿名密钥、身份和密钥的密文,以及证书颁布中心对密文的签名,向所属云服务提供商注册并留存匿名密钥、密文和签名,司机注册单元生成多个公/私有地址;司机登录单元的功能是向所属云服的登录处理单元发送登录请求,并通过匿名身份验证,准备发送联盟打车响应;司机响应单元的功能是在收到路边节点广播的联盟打车请求消息后,计算匿名身份,在指定的时间段内收集环境信号,生成位置标签并尝试恢复乘客的临时公钥,选择通信密钥,用恢复出的公钥以对称加密方式加密自己身份和密钥,并在自己的邻近区域内广播该密文,收集位置证据,计算自己的当前位置和恢复出的公钥的哈希值,用恢复出的公钥解密乘客的密文,得到密钥族,用该密钥簇计算乘客条件和目的地的陷门,计算联盟打车响应、匿名证书和签名,并将匿名身份、联盟打车响应、匿名证书和签名发送给路边节点;收费单元的功能是从所属云服务提供商提交货币拥有的证明,在向云服务提供商车费管理单元支付佣金的同时,拿回剩余的车费;司机登出单元的功能是向所属云服务提供商发送登出请求并退出系统。
一种隐私保护的联盟打车方法,包括如下步骤:
步骤一、证书颁布中心模块和所有云服务提供商模块通过各自的参数设定单元生成系统参数、群公钥、群私钥以及密钥信息;
其中,云服务提供商模块是指Uber、滴滴出行以及Lyft为主的打车运营服务公司所提供的打车服务模块;
步骤一又具体包括如下子步骤:
步骤1.1证书颁布中心参数设定单元生成三个阶相同的乘法循环群,选择两个随机数作为所有云服务提供商的群私钥,计算群公钥,向所有云服务提供商模块分发群私钥的秘密分享;
步骤1.2证书颁布中心参数设定单元选择哈希函数,选择签名及公钥加密参数和对称加密参数,生成公共参数1和公私钥对;
其中,公共参数1包含三个乘法循环群、三个乘法循环群的阶和生成元、双线性映射、群公钥、哈希函数、签名及公钥加密的方法和公共参数、对称加密的方法和公共参数、所有云服务提供商的公钥;
其中,签名及公钥加密参数主要包括密钥长度和模长度;
其中,对称加密参数主要包含密钥长度;
步骤1.3所有云服务提供商参数设定单元将联盟打车的区域划分为网格集合,将这些网格按照二叉树的结构进行管理:根节点的编号为1,节点的编号从上至下从左至右增加;
步骤1.4所有云服务提供商参数设定单元生成公共参数2,包括环境信号过滤函数、Bloom过滤器、哈希函数族和网格集合;
步骤1.5所有云服务提供商参数设定单元生成公共参数3,包括前缀长度、双Bloom过滤器,哈希函数和消息认证码;
步骤1.6所有云服务提供商参数设定单元选择哈希函数,三个伪随机函数,生成证明密钥和验证密钥,建立匿名支付方法和智能合约;
步骤二、乘客模块、司机模块向证书颁布中心模块和云服务提供商模块注册,路边节点模块向和云服务提供商模块注册;
步骤二又包括如下子步骤:
步骤2.1乘客模块先利用乘客注册单元向证书颁布中心注册处理单元注册:证书颁布中心注册处理单元选择密钥,计算身份和密钥的密文,即用其他的云服务提供商模块的公钥依次进行加密身份和密钥后得到的密文;证书颁布中心注册处理单元选择随机数,计算匿名密钥,将匿名密钥、密文和对匿名密钥2与密文的签名返回给乘客注册单元;
其中,匿名密钥2是匿名密钥的第2部分;
其中,其他的云服务提供商模块指乘客模块所属云服务提供商模块以外的云服务提供商模块;
步骤2.2乘客注册单元向所属云服务提供商注册处理单元注册,具体为:乘客注册单元向云服务提供商注册处理单元发送匿名密钥2、密文和签名,后者验证该签名的有效性,若通过验证,存储匿名密钥2、密文和签名,否则注册失败,转至下一乘客模块继续注册;
步骤2.3乘客注册单元选择若干个随机数作为自己的私钥,计算对应的公钥;
步骤2.4乘客注册单元选择K+1个密钥,构造哈希函数族;
步骤2.5乘客注册单元计算多个公共地址和私有地址;
步骤2.6乘客注册单元从所属的云服务提供商模块实名购买虚拟货币,以作为打车费用;
步骤2.7司机注册单元向所属云服务提供商注册处理单元注册,具体为:乘客注册单元向云服务提供商注册处理单元发送匿名密钥2、密文和签名,后者验证该签名的有效性,若未通过验证,则注册失败,转至下一司机模块继续注册,若通过验证,云服务提供商存储匿名密钥2、密文和签名,司机注册单元计算多个公共地址和私有地址;
步骤2.8被云服务提供商模块许可的路边节点的路边节点注册单元向该云服务提供商注册处理单元注册,获得公共地址、私有地址和签名的密钥对;
步骤三、乘客模块、司机模块和路边节点模块登录与云服务提供商模块建立连接,所有云服务提供商模块和所有路边节点模块初始化联盟区块链,又包括如下子步骤:
其中,乘客模块和司机模块与云服务提供商模块建立连接,具体为:
步骤3.1乘客登录单元、司机登录单元向所属云服务提供商的登录处理单元发送登录请求,后者验证该乘客模块和司机模块的身份合法性,若验证通过,登录处理单元为该乘客登录单元和司机登录单元分发登录令牌,建立连接,否则登录处理单元拒绝该乘客登录单元和司机登录单元的登录请求;
其中,路边节点模块与云服务提供商模块建立连接,具体为:
步骤3.2路边节点登录单元向所属云服务提供商的登录处理单元发送登录请求,后者验证该路边节点模块的身份合法性,若验证通过,登录处理单元为该路边节点模块分发登录令牌,建立连接,否则登录处理单元拒绝该路边节点登录单元的登录请求;
步骤3.3所有云服务提供商联盟区块链维护单元将时间划分为段,一段为一分钟,所有云服务提供商联盟区块链维护单元为所有路边节点联盟区块链维护单元内置同步时钟和领头节点选择函数;
步骤3.4所有云服务提供商联盟区块链维护单元联合创建创世块,包括空块头,路边节点身份、公共地址和所有云服务提供商的签名;所有路边节点联盟区块链维护单元将本地区块链设置为创世块;
步骤四、乘客模块向路边节点模块发送联盟打车请求,又包括如下子步骤:
步骤4.1乘客登录单元登录后通过请求单元生成两个货币和两个存钱交易;
步骤4.2请求单元模块计算匿名身份,收集环境信号,将观察值插入第一Bloom过滤器,选择RSA公私钥匙对和编码公钥,将当前位置转化为最小邻近区域集合,将该集合内的区域编号插入第二Bloom过滤器;
步骤4.3请求单元用公钥加密密钥族和随机数,得到密钥族与随机数的密文;对于非数值型的司机条件,请求单元将该司机条件编码为带有属性标记的关键字,得到一组关键字集合;请求单元将所有关键字哈希进第一双Bloom过滤器;对于数值型的目的地区域,请求单元计算该目的地区域前缀家族,将该前缀家族编码为带有属性标记的关键字,计算第二双Bloom过滤器;请求单元构造IBTree树,生成加密的联盟打车数据包;
步骤4.4请求单元形成联盟打车请求,计算匿名证书和对联盟打车请求的签名,将两个货币、两笔存钱交易、匿名身份、联盟打车请求、匿名证书和签名发送给本地路边节点模块的验证单元;
步骤五、路边节点模块验证步骤四发送来的联盟打车请求,验证通过后再广播该联盟打车请求;再收集司机模块的联盟打车响应,并对乘客模块和司机模块进行匹配,又包括如下子步骤:
步骤5.1路边节点模块登录后接收到请求单元发出的联盟打车请求,验证单元验证两个货币、两笔存钱交易、匿名证书和签名的合法性,若验证通过,进入步骤5.2,否则继续处理下一个乘客模块的联盟打车请求;
步骤5.2路边节点响应单元向覆盖区域内的司机模块广播联盟打车请求;
步骤5.3路边节点模块覆盖区域内登录后收到该联盟打车请求的司机模块的司机登录单元计算匿名身份和环境信号Bloom过滤器,恢复出乘客请求单元公钥;司机响应单元选择通讯密钥,用公钥加密身份和通讯密钥的密文,广播该密文,从附近的司机模块收集这些司机模块广播的密文,形成位置证据,计算当前位置和公钥的哈希值;其中,只有位于乘客模块附近的司机模块才能正确恢复该公钥,且司机模块不知道是否正确恢复出了乘客模块的公钥;
步骤5.4司机响应单元用恢复出的公钥解密密钥族与随机数的密文,得到密钥和随机数,根据乘客条件关键字集合,为每一个关键字计算陷门,计算目的地陷门,生成加密联盟打车数据包;
步骤5.5司机响应单元形成联盟打车响应,计算匿名证书和对联盟打车响应的签名,将匿名身份、联盟打车响应、匿名证书金额签名发送给路边节点模块的匹配单元;
步骤5.6匹配单元向第二Bloom过滤器和IBTree分别查询乘客当前位置与公钥的哈希与两个陷门,给请求单元返一个司机的身份与通讯密钥的密文,给司机响应单元返回该乘客模块的匿名身份;请求单元解密密文得到司机身份与通讯密钥,使用通讯密钥和司机模块通讯,协商具体的上车地点和目的地;在收到乘客模块和司机模块的确认后,匹配的按压RSm向所有云服务提供商上传乘客与司机的联盟打车数据包以作为备份,存储并广播从乘客模块收到的两个货币、两笔存钱交易和与司机模块匹配后的联盟打车交易;
步骤六、乘客模块和司机模块开始联盟打车过程直至完成联盟打车过程,乘客模块向司机模块采用匿名支付方法支付车费,司机模块从所属云服务提供商模块兑现车费,并交纳佣金,又包括如下子步骤:
步骤6.1路边节点联盟区块链维护单元广播乘客模块的两个货币和两个存钱交易,以及一个联盟打车交易;当一次联盟打车过程结束时,支付模块通过拆分先前存的货币形成两个新货币,向收费单元支付车费,第一个新货币是给司机模块的车费,第二个新货币是给该乘客模块的退款;
步骤6.2支付单元向路边节点联盟区块链维护单元发送两个新货币和拆分交易;
步骤6.3路边节点联盟区块链维护单元验证上述两个货币和拆分交易,如果验证通过,路边节点联盟区块链维护单元广播这两个货币和拆分交易,跳至步骤七;否则跳至步骤6.3,继续验证其他货币和交易直至验证结束;
步骤6.4司机模块从所属云服务提供商处取回车费并交纳佣金;
步骤七、所有云服务提供商模块和所有路边节点模块维护联盟区块链,又包括如下子步骤:
步骤7.1联盟区块链的领头节点选择过程;在联盟区块链的第一阶段后的所有时段内,所有路边节点联盟区块链维护单元选出领头节点;
步骤7.2联盟区块链的新块产生过程:当前领头节点创建新块,包括块头、更新后的路边节点存量、
Figure BDA0001825108320000071
个交易的哈希值和签名,并广播新块,所有云服务提供商模块和所有路边节点模块验证该新块,若验证通过,则新块被成功添加,否则由领头节点继续产生新块,直至新块被验证通过;
其中,块头包含块号、前块头的哈希值、由
Figure BDA0001825108320000072
个交易建立的Merkle哈希树的根节和时间戳time;
步骤八、所有云服务提供商模块联合恢复目标用户的真实身份,包括如下子步骤:
步骤8.1如果有目标用户被举报有恶意行为,那么所有云服务提供商的用户身份恢复模块先用自己的秘密分享恢复出群私钥,计算该目标用户的匿名密钥二,利用数据库维护单元在自己的数据库中查找该记录;
步骤8.2当一个云服务提供商模块找到上述记录后,由其他云服务提供商单元用自己的私钥依次解密上述目标用户的身份和密钥的密文,得到该目标用户的身份和密钥,所有云服务提供商单元用密钥恢复出该目标用户的联盟打车数据;所有数据库维护单元将该目标用户添加到内部黑名单中;
步骤九、乘客模块、司机模块和路边节点模块向云服务提供商模块发送登出请求,并登出系统,具体为:
步骤9.1乘客模块、司机模块和路边节点模块向所属云服务提供商的登出处理模块发送登出请求,登出处理单元向乘客模块、司机模块和路边节点模块返回登出成功信息,删除乘客模块、司机模块和路边节点模块的登录令牌和连接;
步骤9.2乘客模块、司机模块和路边节点模块接收登出处理单元返回的登出成功信息,删除登录令牌和连接,登出系统,完成本方法。
有益效果
本发明一种隐私保护的联盟打车方法及系统,相对于现有的隐私保护的联盟打车方法与系统具有如下有益效果:
1)保护数据安全:所述系统实现数据的机密性保护、完整性保护、源认证和位置认证;本系统保护用户的数据不被泄露给其他用户、数据在传输过程中不被篡改、只有合法用户才能加入到联盟打车中以及保证用户位置的真实性;
2)保护用户隐私和云服务提供商商业机密:本系统保护用户的身份/位置隐私、保证用户请求/响应的不可链接性、用户在有恶意行为时被所有云服务提供商联合恢复出真实身份以及任何联盟打车支付过程中的支付方身份、收款方身份和车费金额;本系统还能保证任何联盟打车中的实体都不能知道对方属于哪个云服务提供商、不知道对方云服务提供商用户的数量以及从联盟打车中获取的利益;
3)数据审计性:本系统能帮助所有云服务提供商联合管理内部共享的联盟打车账本,其记录了每一次联盟打车的信息,即乘客和司机的匿名身份、匿名密钥和联盟打车数据包的哈希值,同时只有被许可的实体才能参与账本的管理;
4)公平性:本系统能保证乘客接收到来自路边节点的正确的匹配结果、司机在联盟打车过程结束后收到一笔车费,以及云服务提供商从每次联盟打车中获取一笔佣金;
5)系统高效性:本系统能在联盟打车请求、联盟打车响应和匿名支付过程中实现较低的计算开销和通信开销。
附图说明
图1是本发明一种隐私保护的联盟打车系统中各模块及单元的连接示意图;
图2是本发明一种隐私保护的联盟打车方法中乘客模块的注册示意图;
图3是本发明一种隐私保护的联盟打车方法中司机模块注册示意图;
图4是本发明一种隐私保护的联盟打车方法中路边节点模块注册示意图;
图5是本发明一种隐私保护的联盟打车方法中乘客模块、司机模块和路边节点模块登录示意图;
图6是本发明一种隐私保护的联盟打车方法中联盟打车请求示意图;
图7是本发明一种隐私保护的联盟打车方法中联盟打车响应示意图;
图8是本发明一种隐私保护的联盟打车方法中匿名支付与区块链维护示意图;
图9是本发明一种隐私保护的联盟打车方法中乘客模块、司机模块和路边节点模块登出示意图。
具体实施方式
下面结合附图和实施例,更具体地说明本发明隐私保护的联盟打车方法及系统。应当指出,本发明的实施并不局限于下面的实施例,对本发明所做的任何形式上的变通或改变将落入本发明保护范围。
实施例1
本实施例描述了本发明所述系统中各模块的安装以及本发明所述方法的具体实施。
所述证书颁布中心模块安装在台式机上;所述服务器模块安装在阿里云的云服务器上;所述的路边节点模块安装在台式机上;所述的乘客模块和司机模块安装在笔记本电脑上;各单元的连接关系如图1所示。
步骤一具体实施时,各子步骤操作如下:
步骤1.1证书颁布中心参数设定单元生成三个阶相同的乘法循环群,选择两个随机数作为所有云服务提供商的群私钥,计算群公钥,向所有云服务提供商模块分发群私钥的秘密分享,具体到本实施例,证书颁布中心参数设定单元生成三个乘法循环群G1,G2,G3,它们的阶都是p;g1,g2分别是G1,G2的生成元,e:G1×G2→G3是双线性映射;CA选择两个随机数
Figure BDA0001825108320000091
作为所有云服务提供商模块的群私钥,计算其群公钥
Figure BDA0001825108320000092
向所有云服务提供商模块分发u,v的秘密分享,即所有云服务提供商模块拥有两个秘密分享ssi1,ssi2
步骤1.2证书颁布中心参数设定单元选择哈希函数,选择签名及公钥加密方法,选择对称加密方法,生成上述两方法的公共参数和的公私钥对,将这些参数设置为公共参数1,具体到本实施例,证书颁布中心参数设定单元选择哈希函数
Figure BDA0001825108320000093
选择签名方法
Figure BDA0001825108320000094
公钥加密方法
Figure BDA0001825108320000095
和对称加密方法
Figure BDA0001825108320000096
生成公共参数parSig,parEnc,parEnc′和SPi
Figure BDA0001825108320000097
设置公共参数par1=(p,G1,G2,G3,g1,g2,e,U1,U2,V,H1,parSig,parEnc,parEnc′);
步骤1.3所有云服务提供商参数设定单元将联盟打车的区域划分为网格集合,将这些网格按照二叉树的结构进行管理:根节点的编号为1,节点的编号从上至下从左至右增加,具体到本实施例,所有云服务提供商参数设定单元将联盟打车的区域划分为网格集合
Figure BDA0001825108320000098
将这些网格按照二叉树的结构进行管理:根节点的编号为1,节点的编号从上至下从左至右增加;
步骤1.4所有云服务提供商参数设定单元生成公共参数2,包括环境信号过滤函数、Bloom过滤器、哈希函数族和网格集合,具体到本实施例,所有云服务提供商参数设定单元生成公共参数par2,包括环境信号过滤函数φ、具有长度f的Bloom过滤器B、哈希函数族h:={h1,h2,…,ho}和
Figure BDA0001825108320000099
步骤1.5所有云服务提供商参数设定单元选择公共参数3,包括前缀长度、双Bloom过滤器,哈希函数和消息认证码,具体到本实施例,所有云服务提供商参数设定单元选择公共参数par3,包括前缀长度w、长度为f′的双Bloom过滤器B′、哈希函数H′(.)=H′(.)%2和消息认证码HMAC;
步骤1.6所有云服务提供商参数设定单元选择哈希函数,三个伪随机函数,生成证明密钥和验证密钥,建立匿名支付方法和智能合约,具体到本实施例,所有云服务提供商参数设定单元选择选择哈希函数H2,三个伪随机函数
Figure BDA00018251083200000910
Figure BDA00018251083200000911
为NP陈述POUR构建CPOUR,生成证明密钥pkPOUR和验证密钥vkPOUR,建立匿名支付方法∏DAP:=(CreateAdd,Deposit,Pour,Redeem)和智能合约SC:=(Verify,Hail,Match);
步骤二具体实施时,各子步骤操作如下:
步骤2.1乘客注册单元先向证书颁布中心注册处理单元注册:证书颁布中心注册处理单元选择密钥,计算身份和密钥的密文,即用其他的云服务提供商模块的公钥依次进行加密身份和密钥后得到的密文;证书颁布中心注册处理单元选择随机数,计算匿名密钥,将匿名密钥、密文和对匿名密钥二与密文的签名返回给乘客注册单元,具体到本实施例,乘客模块Ri的乘客模块注册单元先向证书颁布中心注册处理单元注册:证书颁布中心注册处理单元选择密钥
Figure BDA0001825108320000101
计算
Figure BDA0001825108320000102
用其他的云服务提供商模块的公钥依次进行加密
Figure BDA0001825108320000103
后得到的密文;证书颁布中心注册处理单元A选择随机数
Figure BDA0001825108320000104
满足
Figure BDA0001825108320000105
计算
Figure BDA0001825108320000106
将匿名密钥
Figure BDA0001825108320000107
Figure BDA0001825108320000108
和对
Figure BDA0001825108320000109
的签名
Figure BDA00018251083200001010
返回给乘客模块Ri
步骤2.2乘客注册单元向云服务提供商注册处理单元:乘客注册单元向云服务提供商注册处理单元发送匿名密钥二、密文和签名,后者验证该签名的有效性,若通过验证,存储匿名密钥二、密文和签名,否则注册失败,具体到本实施例,乘客注册单元向SPz注册:乘客模块向所属云服务提供商SPz的注册处理单元发送
Figure BDA00018251083200001011
后者验证其有效性,通过验证后存储
Figure BDA00018251083200001012
步骤2.3乘客注册单元选择若干个随机数作为自己的私钥,计算对应的公钥,具体到本实施例,乘客模块Ri的乘客注册单元选择li个随机数
Figure BDA00018251083200001013
作为自己的私钥,计算对应的公钥
Figure BDA00018251083200001014
步骤2.4乘客注册单元选择K+1个密钥,构造伪随机哈希函数族,具体到本实施例,乘客模块Ri的乘客注册单元选择K+1个密钥
Figure BDA00018251083200001015
构造哈希函数族:
Figure BDA00018251083200001016
其中,
Figure BDA00018251083200001017
Figure BDA00018251083200001018
步骤2.5乘客注册单元计算多个公共地址和私有地址,具体到本实施例,乘客模块Ri的乘客注册单元计算
Figure BDA00018251083200001019
随机选取种子
Figure BDA00018251083200001020
计算
Figure BDA00018251083200001021
Figure BDA00018251083200001022
设置公共地址
Figure BDA00018251083200001023
私有地址
Figure BDA00018251083200001024
乘客模块Ri重复此步骤Li次以计算十个公/私有地址;
步骤2.6乘客注册单元从所属的云服务提供商模块实名购买虚拟货币,以作为打车费用,具体到本实施例,乘客模块Ri的乘客注册单元从SPz实名购买虚拟货币,以作为打车费用;乘客模块的注册过程如图2所示;
步骤2.7司机注册单元以步骤2.2和步骤2.5的方式向证书颁布中心注册处理单元和所属云服务提供商单元注册,并获得密钥、匿名密钥、身份与密钥的密文、签名和多个公私有地址,具体到本实施例,司机模块Dj的司机注册单元以类似的方式向证书颁布中心和所属云服务提供商单元注册,并获得
Figure BDA0001825108320000111
和十个公/私有地址;司机模块的注册过程如图3所示;
步骤2.8路边节点注册单元在通过所属云服务提供商模块许可后方可向该云服务提供商注册,获得公共地址、私有地址和签名的密钥对,具体到本实施例,路边节点模块RSm的路边节点注册单元在通过其所属云服务提供商许可后方可向其注册加入联盟区块链网络,并获得公共地址
Figure BDA0001825108320000112
私有地址
Figure BDA0001825108320000113
Figure BDA0001825108320000114
和签名的密钥对
Figure BDA0001825108320000115
路边节点模块注册示意图如图4所示;
步骤三具体实施时,各子步骤操作如下:
步骤3.1乘客登录单元、司机登录单元向所属云服务提供商的登录处理单元发送登录请求,后者验证该乘客模块和司机模块的身份合法性,若验证通过,登录处理单元为该乘客登录单元和司机登录单元分发登录令牌,建立连接,否则登录处理单元拒绝乘客登录单元和司机登录单元的登录请求;
步骤3.2路边节点登录单元向所属云服务提供商的登录单元发送登录请求,后者验证该路边节点模块的身份合法性,若验证通过,登录处理单元为该路边节点模块分发登录令牌,建立连接,否则登录处理单元拒绝路边节点登录单元的登录请求;拒绝登录;乘客模块、司机模块和路边节点模块登录示意图如图5所示;
步骤3.3所有云服务提供商联盟区块链维护单元将时间划分为段,一段为一分钟,所有云服务提供商联盟区块链维护单元为所有路边节点联盟区块链维护单元内置同步时钟和领头节点选择函数,具体到本实施例,所有云服务提供商联盟区块链维护单元将时间划分为段{sl1,sl2,…},一段为一分钟,所有路边节点联盟区块链维护单元被内置同步时钟和领头节点选择函数,所有云服务提供商联盟区块链维护单元为所有路边节点联盟区块链维护单元内置同步时钟和领头节点选择函数F(.);
步骤3.4所有云服务提供商联盟区块链维护单元联合创建创世块,包括空块头,路边节点身份、公共地址和所有云服务提供商的签名;所有路边节点联盟区块链维护单元将本地区块链设置为创世块,具体到本实施例,所有云服务提供商联盟区块链维护单元联合创建创世块,包括空块头,路边节点身份、公共地址和所有云服务提供商的签名;所有路边节点联盟区块链维护单元将本地区块链设置为创世块,具体到本实施例,联盟区块链的第一阶段,该步骤只执行一次;所有云服务提供商单元联合创建创世块B0,包括空块头,路边节点身份
Figure BDA0001825108320000116
公共地址
Figure BDA0001825108320000117
存量
Figure BDA0001825108320000118
(stake)和所有云服务提供商模块的签名;所有路边节点模块的路边节点联盟区块链维护单元将各自本地的联盟区块链CB设置为B0
步骤四具体实施时,各子步骤操作如下:
步骤4.1乘客登录单元登录后通过请求单元生成两个货币和两个存钱交易,具体到本实施例,乘客模块Ri的乘客登录单元生成两个价值为v1,v2的货币c1,c2:乘客模块Ri随机选择PRFsn种子τ和两个承诺陷门tr1,tr2,计算
Figure BDA0001825108320000119
Figure BDA0001825108320000121
其中,Com是统计信息隐藏的非交互式承诺方法;乘客模块Ri设置
Figure BDA0001825108320000122
和存钱交易
Figure BDA0001825108320000123
这里time是当前时间戳,获得类似的c2
Figure BDA0001825108320000124
步骤4.2请求单元计算匿名身份,收集环境信号,将观察值插入第一Bloom过滤器,选择一对RSA公私钥匙对和编码公钥,将当前位置转化为最小邻近区域集合,将该集合内的区域编号插入第二个Bloom过滤器,具体到本实施例,乘客模块Ri的请求单元计算匿名身份
Figure BDA0001825108320000125
在时间段(t1,t2)内收集环境信号,将观察值y(t1,t2)插入第一Bloom过滤器
Figure BDA0001825108320000126
这里,Ins是插入操作;请求单元选择一对RSA公私钥匙对
Figure BDA0001825108320000127
Figure BDA0001825108320000128
插入
Figure BDA0001825108320000129
Figure BDA00018251083200001210
Figure BDA00018251083200001211
这里,Encode是编码函数,乘客模块Ri计算
Figure BDA00018251083200001212
请求单元将当前位置
Figure BDA00018251083200001213
转化为最小邻近区域集合
Figure BDA00018251083200001214
将该集合内的区域编号插入第二Bloom过滤器
Figure BDA00018251083200001215
步骤4.3请求单元用公钥加密密钥族和随机数,得到密钥族与随机数的密文;对于非数值型的司机条件,请求单元将该司机条件编码为带有属性标记的关键字,得到一组关键字集合;请求单元将所有关键字哈希进第一双Bloom过滤器;对于数值型的目的地区域,请求单元计算该目的地区域前缀家族,将该前缀家族编码为带有属性标记的关键字,计算第二双Bloom过滤器;请求单元构造IBTree树,生成加密的联盟打车数据包,具体到本实施例,乘客模块Ri的请求单元用
Figure BDA00018251083200001216
加密
Figure BDA00018251083200001217
和随机数rB′,得到
Figure BDA00018251083200001218
Figure BDA00018251083200001219
对于非数值型的司机条件,请求单元将该司机条件编码为带有属性标记的关键字,得到一组关键字集合
Figure BDA00018251083200001220
请求单元将所有关键字wj哈希进第一双Bloom过滤器
Figure BDA00018251083200001221
对于所有
Figure BDA00018251083200001222
请求单元设置
Figure BDA00018251083200001223
设置
Figure BDA00018251083200001224
Figure BDA00018251083200001225
对于数值型的目的地区域
Figure BDA00018251083200001226
请求单元计算该目的地区域的前缀家族,将其该前缀家族编码为带有属性标记的关键字,计算第二双Bloom过滤器
Figure BDA00018251083200001227
请求单元利用两个叶子节点
Figure BDA00018251083200001228
Figure BDA00018251083200001229
构造IBTree树
Figure BDA00018251083200001230
请求单元生成加密的联盟打车数据包
Figure BDA00018251083200001231
步骤4.4请求单元形成联盟打车请求,计算匿名证书和对联盟打车请求的签名,将匿名身份、联盟打车请求、匿名证书和签名发送给本地路边节点模块的验证单元,具体到本实施例,乘客模块Ri的请求单元形成联盟打车请求
Figure BDA0001825108320000131
Figure BDA0001825108320000132
计算匿名证书
Figure BDA0001825108320000133
和对
Figure BDA0001825108320000134
的签名
Figure BDA0001825108320000135
最后,乘客模块Ri请求单元将
Figure BDA0001825108320000136
发送给本地路边节点模块RSm;联盟打车请求示意图如图6所示;
步骤五具体实施时,各子步骤操作如下:
步骤5.1路边节点模块登录后接收到请求单元发出的联盟打车请求,验证单元验证两笔货币、两笔存钱交易、匿名证书和签名的合法性,若验证通过,进入步骤5.2,否则继续处理下一个乘客模块的联盟打车请求,具体到本实施例,在接收到乘客的联盟打车请求
Figure BDA0001825108320000137
后,路边节点RSm的验证单元运行SC.Verify;路边节点单元RSm验证c1,c2,
Figure BDA0001825108320000138
Figure BDA0001825108320000139
的合法性:路边节点单元RSm计算
Figure BDA00018251083200001310
如果cm′=cm2,则接受
Figure BDA00018251083200001311
类似地,路边节点单元验证
Figure BDA00018251083200001312
若验证通过,进入步骤5.2,否则继续处理下一个乘客模块的联盟发车请求;
步骤5.2路边节点响应单元向自己区域内该乘客模块请求单元的广播联盟打车请求,具体到本实施例,路边节点模块RSm的路边节点响应单元运行SC.Hail,向本区域内的司机模块广播联盟打车请求
Figure BDA00018251083200001313
步骤5.3在上述路边节点模块覆盖区域内登录后收到该联盟打车请求的司机模块的司机登录单元计算匿名身份和环境信号Bloom过滤器,恢复出乘客请求单元公钥,并且只有位于乘客模块附近的司机模块才能正确恢复该公钥,而且司机模块不知道自己是否正确恢复出了乘客模块的公钥;司机响应单元选择通讯密钥,用公钥加密身份和通讯密钥的密文,广播该密文,从附近的司机模块收集这些司机模块广播的密文,形成位置证据,计算当前位置和公钥的哈希值,具体到本实施例,收到联盟打车请求
Figure BDA00018251083200001314
的司机模块Dj的司机响应单元计算匿名身份
Figure BDA00018251083200001315
和环境信号Bloom过滤器
Figure BDA00018251083200001316
Figure BDA00018251083200001317
中恢复出公钥
Figure BDA00018251083200001318
选择通讯密钥
Figure BDA00018251083200001319
计算
Figure BDA00018251083200001320
广播
Figure BDA00018251083200001321
司机响应单元从附近的司机收集他们的eid,形成位置证据
Figure BDA00018251083200001322
计算
Figure BDA00018251083200001323
步骤5.4司机响应单元用自己恢复出的公钥解密密钥族与随机数的密文,得到密钥和随机数,根据自己的乘客条件关键字集合,为每一个关键字计算陷门,计算目的地陷门,生成加密联盟打车数据包,具体到本实施例,司机模块Dj的司机响应模块用自己恢复出的
Figure BDA00018251083200001324
解密
Figure BDA00018251083200001325
得到
Figure BDA00018251083200001326
根据自己的乘客条件关键字集合
Figure BDA0001825108320000141
为每一个关键字w计算包含
Figure BDA0001825108320000142
的陷门
Figure BDA0001825108320000143
计算目的地陷门
Figure BDA0001825108320000144
司机响应模块生成加密联盟打车数据包
Figure BDA0001825108320000145
Figure BDA0001825108320000146
步骤5.5司机响应单元形成联盟打车响应,计算匿名证书和对联盟打车响应的签名,将匿名身份、联盟打车响应、匿名证书金额签名发送给路边节点模块的匹配单元,具体到本实施例,司机模块Dj的司机响应单元形成联盟打车响应
Figure BDA0001825108320000147
Figure BDA0001825108320000148
计算匿名证书
Figure BDA0001825108320000149
和对
Figure BDA00018251083200001410
的签名
Figure BDA00018251083200001411
Figure BDA00018251083200001412
发送给路边节点模块RSm
步骤5.6匹配单元向第二Bloom过滤器和IBTree分别查询乘客当前位置与公钥的哈希与两个陷门,给请求单元返一个司机的身份与通讯密钥的密文,给司机响应单元返回该乘客模块的匿名身份;请求单元解密密文得到司机身份与通讯密钥,使用通讯密钥和司机模块通讯,协商具体的上车地点和目的地;在收到乘客模块和司机模块的确认后,匹配的按压RSm向所有云服务提供商上传乘客与司机的联盟打车数据包以作为备份,存储并广播从乘客模块收到的两个货币、两笔存钱交易和与司机模块匹配后的联盟打车交易,具体到本实施例,路边节点RSm的匹配单元运行SC.Match,向
Figure BDA00018251083200001413
Figure BDA00018251083200001414
分别查询
Figure BDA00018251083200001415
Figure BDA00018251083200001416
给乘客模块Ri返回一个查询值为1的
Figure BDA00018251083200001417
乘客模块Ri的请求单元解密
Figure BDA00018251083200001418
得到
Figure BDA00018251083200001419
使用
Figure BDA00018251083200001420
和司机模块Dj通讯,协商具体的上车地点和目的地;在收到乘客模块和司机模块的确认收,路边节点模块RSm向所有云服务提供商模块上传
Figure BDA00018251083200001421
Figure BDA00018251083200001422
以作为备份;联盟打车响应示意图如图7所示;
步骤六具体实施时,各子步骤操作如下:
步骤6.1路边节点联盟区块链维护单元广播乘客模块的两个货币和两个存钱交易和一个联盟打车交易;当一次联盟打车过程结束时,支付模块通过拆分先前存的货币形成两个新货币,向收费单元支付车费,第一个新货币是给司机模块的车费,第二个新货币是给该乘客模块的退款,具体到本实施例,路边节点联盟区块链维护单元广播乘客模块的两个货币(c1,c2)和两笔存钱交易
Figure BDA00018251083200001423
以及一个联盟打车交易
Figure BDA00018251083200001424
Figure BDA00018251083200001425
当一次联盟打车过程结束时,乘客模块Ri通过拆分先前存的货币c1,c2形成两个新货币
Figure BDA00018251083200001426
向司机Dj支付车费,第一个新货币
Figure BDA00018251083200001427
是给司机的车费,第二个新货币
Figure BDA00018251083200001428
是给自己的退款;对于a∈{1,2},乘客模块Ri支付单元计算
Figure BDA00018251083200001429
随机选取PRFsn种子
Figure BDA00018251083200001430
(第一个种子是由司机模块选取的,用以避免乘客Ri的提前兑现攻击)和两个承诺陷门
Figure BDA0001825108320000151
分别计算
Figure BDA0001825108320000152
Figure BDA0001825108320000153
Figure BDA0001825108320000154
分别设置
Figure BDA0001825108320000155
Figure BDA0001825108320000156
这里,
Figure BDA0001825108320000157
Figure BDA0001825108320000158
分别与司机模块Dj和乘客模块Ri对应;
步骤6.2支付单元向路边节点联盟区块链维护单元发送两个新货币和拆分交易,具体到本实施例,乘客模块Ri的支付单元生成签名密钥对(skSig,pkSig),计算
Figure BDA0001825108320000159
Figure BDA00018251083200001510
设置陈述
Figure BDA00018251083200001511
Figure BDA00018251083200001512
设置
Figure BDA00018251083200001513
Figure BDA00018251083200001514
Figure BDA00018251083200001515
计算非交互证据π,设置
Figure BDA00018251083200001516
Figure BDA00018251083200001517
计算签名
Figure BDA00018251083200001518
生成拆分交易
Figure BDA00018251083200001519
Figure BDA00018251083200001520
乘客模块Ri的支付单元向路边节点RSm发送
Figure BDA00018251083200001521
步骤6.3路边节点联盟区块链维护单元验证上述两个货币和拆分交易,如果验证通过,路边节点联盟区块链维护单元广播这两个货币和拆分交易;否则继续验证其他货币和交易,具体到本实施例,路边节点模块RSm的联盟区块链维护单元运行SC.Verify,验证
Figure BDA00018251083200001522
如果验证通过,联盟区块链维护单元广播
Figure BDA00018251083200001523
Figure BDA00018251083200001524
步骤6.4司机模块Dj从所属云服务提供商处取回车费并交纳佣金,具体到本实施例,司机模块Dj的收费单元计算
Figure BDA00018251083200001525
验证
Figure BDA00018251083200001526
是否等于
Figure BDA00018251083200001527
以及
Figure BDA00018251083200001528
是否不在联盟区块链上,如果两者皆通过验证,那么司机模块Dj输出
Figure BDA00018251083200001529
Figure BDA00018251083200001530
之后进入联盟链维护阶段;否则收费失败,将该车费对应的乘客模块定义为目标用户;
步骤七具体实施时,各子步骤操作如下:
步骤7.1联盟区块链的领头节点选择过程;在联盟区块链的第一阶段后的所有时段内,所有路边节点联盟区块链维护单元选出领头节点,具体到本实施例,联盟区块链的领头节点选择过程;在联盟区块链的第一阶段后的所有时段sli内,所有路边节点RSj运行领头节点选择函数F(.),其输入为
Figure BDA00018251083200001531
概率
Figure BDA00018251083200001532
和sli,输出领头节点RSm,其中,
Figure BDA0001825108320000161
步骤7.2联盟区块链的新块产生过程:领头节点RSm在当前内创建新块,包括块头(包含块号、前块头的哈希值、由
Figure BDA0001825108320000162
个交易建立的Merkle哈希树的根节和时间戳time)、更新后的路边节点存量、
Figure BDA0001825108320000163
个交易的哈希值和签名,并广播新块,所有云服务提供商模块和所有路边节点模块验证该新块,若验证通过,则新块被成功添加,否则有领头节点继续产生新块,直至新块被验证通过,具体到本实施例,联盟区块链的新块产生过程;领头节点单元RSm在时间段sli内创建新块
Figure BDA0001825108320000164
包括块头
Figure BDA0001825108320000165
(包含块号
Figure BDA0001825108320000166
前块头的哈希值
Figure BDA0001825108320000167
Figure BDA00018251083200001617
个交易建立的Merkle哈希树的根节点
Figure BDA0001825108320000168
和时间戳time)、更新后的路边节点存量
Figure BDA0001825108320000169
Figure BDA00018251083200001618
个交易的哈希值和签名
Figure BDA00018251083200001610
并广播新块,所有云服务提供商模块和所有路边节点模块验证该新块,若验证通过,则新块被成功添加,否则有领头节点继续产生新块,直至新块被验证通过;匿名支付与区块链维护示意图如图8所示;
步骤八具体实施时,各子步骤操作如下:
步骤8.1如果有目标用户被举报有恶意行为,那么所有云服务提供商的用户身份恢复模块先用自己的秘密分享恢复出群私钥,计算该目标用户的匿名密钥二,利用数据库维护单元在自己的数据库中查找该记录,具体到本实施例,如果有用户举报另一个拥有匿名身份pidi和匿名证书Ci的用户i的恶意行为,那么所有云服务提供商模块首先用自己的秘密分享恢复出群私钥u,v,计算
Figure BDA00018251083200001611
Figure BDA00018251083200001612
利用数据库维护单元在自己的数据库中查找该记录
Figure BDA00018251083200001613
步骤8.2当一个云服务提供商模块找到上述记录后,由其他云服务提供商单元用自己的私钥依次解密上述目标用户的身份和密钥的密文,得到该目标用户的身份和密钥,所有云服务提供商单元用密钥恢复出该目标用户的联盟打车数据;所有数据库维护单元将该目标用户添加到内部黑名单中,具体到本实施例,云服务提供商单元SPz找到该记录后,由其他云服务提供商单元用自己的私钥依次解密{ε}Enc(i||SKi)得到
Figure BDA00018251083200001614
Figure BDA00018251083200001615
所有云服务提供商单元用SKi恢复出该目标用户i的联盟打车数据
Figure BDA00018251083200001616
所有数据库维护单元将该目标用户i添加到内部黑名单中;
步骤九具体实施时,各子步骤操作如下:
步骤9.1乘客模块/司机模块/路边节点单元向云服务提供商单元发送登出请求,后者向其返回登出成功信息,删除其登录令牌和连接;
步骤9.2乘客模块/司机模块/路边节点单元接收云服务提供商返回的登出成功信息,删除登录令牌和连接,登出系统,完成本方法;乘客模块、司机模块和路边节点模块登出示意图如图9所示。
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容,凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (5)

1.一种隐私保护的联盟打车系统,其特征在于:包括证书颁布中心模块、云服务提供商模块、路边节点模块、乘客模块和司机模块;证书颁布中心模块包括证书颁布中心参数设定单元和证书颁布中心注册处理单元;云服务提供商模块包括云服务提供商参数设定单元、云服务提供商注册处理单元、登录处理单元、联盟链维护单元、数据库维护单元、费用管理单元、用户身份恢复单元和登出处理单元;乘客模块包括;乘客注册单元、乘客登录单元、请求单元、支付单元和乘客登出单元;路边节点模块包括路边节点注册单元、路边节点登录单元、验证单元、路边节点响应单元、匹配单元、路边节点联盟链维护单元和路边节点登出单元;司机模块包括司机注册单元、司机登录单元、司机响应单元、收费单元和司机登出单元;
所述打车系统中各单元的连接关系如下:
证书颁布中心模块参数设定单元连接云服务提供商参数设定单元,证书颁布中心注册处理单元连接乘客注册单元、路边节点注册单元和司机注册单元;云服务提供商注册参数设定单元连接证书颁布中心参数设定单元,云服务提供商注册处理单元连接乘客注册单元、路边节点注册单元和司机注册单元,登录处理单元连接乘客登录单元、路边节点登录单元和司机登录单元,云服务提供商联盟区块链为主单元连接路边节点联盟区块链维护单元,数据库维护单元连接匹配单元和路边节点联盟区块链维护单元,费用管理单元连接收费单元,登出处理单元连接乘客登出单元、路边节点登出单元和司机登出单元;
乘客注册单元连接证书颁布中心注册处理单元、云服务提供商注册处理单元和乘客登录单元,乘客登录单元连接登录处理单元、请求单元和支付单元,请求单元连接验证单元、匹配单元和支付单元,支付单元连接路边节点联盟区块链维护单元和乘客登出单元,乘客登出单元连接登出处理单元;
路边节点注册单元连接云服务提供商注册处理单元和路边节点登录单元,路边节点登录单元连接登录处理单元和验证单元,验证单元连接路边节点响应单元,路边节点响应单元连接匹配单元,匹配单元连接请求单元、司机响应单元和路边节点联盟区块链维护单元,路边节点联盟区块链维护单元连接提供商联盟区块链维护单元和路边节点登出单元;司机注册单元连接证书颁布中心注册处理单元、云服务提供商注册处理单元和司机登录单元,司机登录单元连接登录处理单元、司机响应单元和收费单元,司机响应单元连接验证单元和收费单元,收费单元连接路边节点联盟区块链维护单元、费用管理单元和司机登出单元,司机登出单元连接登出处理单元;
所述打车系统中各模块的功能如下:
证书颁布中心模块中各单元的功能如下:证书颁布中心参数设定单元的功能是生成所有云服务提供商公用的群公钥与群私钥,将群私钥的秘密分享分发给所有云服务提供商模块,选择联盟打车系统使用的签名及公钥加密算法RSA对称加密算法AES,以及生成所有云服务提供商的公钥与私钥;证书颁布中心册处理单元的功能是为用户注册并生成密钥和匿名密钥,并用其他云服务提供商的公钥对用户的身份和密钥进行加密,以及为该密钥和密文进行签名;
云服务提供商模块中各单元的功能如下:云服务提供商参数设定单元的功能是联合其他所有云服务提供商参数设定单元一起划分联盟打车区域,为所有子区域进行编号,将所有区域按照二叉树的结构进行管理,根节点的编号为1,编号从上至下、从左至右地增加,选择环境信号过滤函数、Bloom过滤器、哈希函数族、消息认证码和三个伪随机函数,构造匿名支付方法和智能合约;其中,所述匿名支付方法不同于原匿名支付方法Zerocash,乘客模块在进行拆分交易时,和司机模块共同选择随机数以用于完成拆分交易;云服务提供商注册处理单元的功能是联合所有云服务提供商注册处理单元根据用户发送的匿名密钥、密文和签名,验证签名的合法性;登录处理单元:为合法的用户模块和路边节点模块在提交登录请求后分发登录令牌,与该用户模块和路边节点模块建立连接;云服务提供商联盟链维护单元:设置区块链的初始阶段和第一阶段,验证和存储路边节点模块发来的货币和交易;数据库维护单元:所有云服务提供商存储用户的匿名密钥、密文和签名,并且存储区块链中的货币、交易和用户加密后的联盟打车数据,许可路边节点模块进行区块链的维护;车费管理单元:当有司机模块向车费管理模块兑现车费时,车费管理模块验证该车费的有效性,若有效,则收取佣金,返回给司机剩余车费,否则拒绝该司机模块兑现车费;用户身份恢复单元:当有目标用户模块出现时,所有云服务提供商联合恢复出群私钥,根据该用户的联盟打车信息恢复出该用户的匿名密钥,该用户的所属云服务提供商找到对应的身份和密钥的密文,由其他云服务提供商解密,恢复出该用户的身份和密钥,最终解密得到该用户之前的联盟打车数据,其中,目标用户模块是指有恶意行为的目标用户模块;登出处理单元:为合法用户模块和路边节点模块提交登出请求后删除该用户模块和路边节点模块的登录令牌,删除连接;
乘客模块:乘客注册单元的功能是向证书颁布中心注册,获得密钥、匿名密钥、身份和密钥的密文,以及证书颁布中心对密文的签名,乘客生成多个临时公私钥、密钥族、哈希函数族和多个公/私有地址,乘客向所属云服务提供商注册并留存匿名密钥、密文和签名,从所属云服务提供商实名购买虚拟货币;乘客登录单元的功能是所属云服务提供商发送登录请求,并通过匿名身份验证,准备发送联盟打车请求,或者进入支付单元支付之前未支付的联盟打车订单;请求单元的功能是生成两笔存钱交易,计算匿名身份,在一定时间段内收集环境信号,生成位置标记和临时公私钥,向位置标记中嵌入临时公钥,将当前位置转化为Bloom过滤器,对公钥和私钥组进行加密,将司机条件和目的地转化为双Bloom过滤器,生成联盟打车数据包和联盟打车请求,计算匿名证书和签名,将两笔交易、匿名身份、联盟打车请求、匿名证书和签名发送给路边节点,在路边节点为自己匹配司机后,收到路边节点发来的司机信息,其中,双Bloom过滤器是指由两个Bloom过滤器组成的一种Bloom过滤器变种,具体为:双Bloom过滤器有两个Bloom过滤器,它们的编号分别为0和1,双Bloom过滤器的输入在经过一次哈希函数后,得到一个Bloom过滤器的编号,再经过一次哈希函数,得到上述Bloom过滤器的位置,并将该位置的数值设置为1;支付单元的功能是生成拆分交易,具体为:将先前存的两个旧货币拆分成两个新货币,一个给司机作为车费,另一个作为返回给自己的余款,并向路边节点联盟区块链维护单元发送该拆分交易;乘客登出单元的功能是向所属云服务提供商发送登出请求并退出系统;
路边节点模块:路边节点注册单元的功能是向云服务提供商模块注册并获得公有地址、私有地址、用于签名的公私钥对和云服务提供商的签名;路边节点登录单元的功能是向所属云服务提供商发送登录请求,通过实名身份认证,并准备接收乘客的联盟打车请求以及为乘客模块匹配合适的司机;验证单元的功能是验证乘客和司机的匿名证书和签名的合法性,如果通过验证,则为该乘客和司机提供服务,否则丢弃数据包,路边节点验证乘客的存钱交易和拆分交易,如果通过验证,则广播交易,否则丢弃该两笔交易并拒绝为该司机寻找司机模块;路边节点响应单元的功能是验证乘客的存钱交易和联盟打车请求后,向自己覆盖区域内广播联盟打车请求;匹配单元的功能是在接收并验证司机的联盟打车响应后,为乘客匹配合适的司机,并将匹配结果发送给乘客和司机,在收到乘客和司机的确认后,向所有云服务提供商发送乘客和司机的联盟打车数据包,生成联盟打车交易,对该联盟打车交易签名;路边节点联盟区块链维护单元的功能是广播乘客模块的货币和存钱交易,验证其他路边节点模块发来的货币和交易,根据领头节点选择函数选择出当前阶段的领头节点,由该领头节点创建新块,将该新块广播;路边节点登出单元的功能是向所属云服务提供商发送登出请求并退出系统,其中,领头节点是指由所有路边节点通过领头节点选择函数选择出的一个路边节点,领头节点选择函数的输入包含所有路边节点的公共地址、被选概率、存量和当前时间段,输出是一个路边节点的身份;
司机模块:司机注册单元的功能是向证书颁布中心注册,获得密钥、匿名密钥、身份和密钥的密文,以及证书颁布中心对密文的签名,向所属云服务提供商注册并留存匿名密钥、密文和签名,司机注册单元生成多个公/私有地址;司机登录单元的功能是向所属云服的登录处理单元发送登录请求,并通过匿名身份验证,准备发送联盟打车响应;司机响应单元的功能是在收到路边节点广播的联盟打车请求消息后,计算匿名身份,在指定的时间段内收集环境信号,生成位置标签并尝试恢复乘客的临时公钥,选择通信密钥,用恢复出的公钥以对称加密方式加密自己身份和密钥,并在自己的邻近区域内广播该密文,收集位置证据,计算自己的当前位置和恢复出的公钥的哈希值,用恢复出的公钥解密乘客的密文,得到密钥族,用该密钥簇计算乘客条件和目的地的陷门,计算联盟打车响应、匿名证书和签名,并将匿名身份、联盟打车响应、匿名证书和签名发送给路边节点;收费单元的功能是从所属云服务提供商提交货币拥有的证明,在向云服务提供商车费管理单元支付佣金的同时,拿回剩余的车费;司机登出单元的功能是向所属云服务提供商发送登出请求并退出系统。
2.一种隐私保护的联盟打车方法,其特征在于:包括如下步骤:
步骤一、证书颁布中心模块和所有云服务提供商模块通过各自的参数设定单元生成系统参数、群公钥、群私钥以及密钥信息;
步骤一又具体包括如下子步骤:
步骤1.1证书颁布中心参数设定单元生成三个阶相同的乘法循环群,选择两个随机数作为所有云服务提供商的群私钥,计算群公钥,向所有云服务提供商模块分发群私钥的秘密分享;
步骤1.2证书颁布中心参数设定单元选择哈希函数,选择签名及公钥加密参数和对称加密参数,生成公共参数1和公私钥对;
其中,公共参数1包含三个乘法循环群、三个乘法循环群的阶和生成元、双线性映射、群公钥、哈希函数、签名及公钥加密的方法和公共参数、对称加密的方法和公共参数、所有云服务提供商的公钥;
其中,签名及公钥加密参数主要包括密钥长度和模长度;
其中,对称加密参数主要包含密钥长度;
步骤1.3所有云服务提供商参数设定单元将联盟打车的区域划分为网格集合,将这些网格按照二叉树的结构进行管理:根节点的编号为1,节点的编号从上至下从左至右增加;
步骤1.4所有云服务提供商参数设定单元生成公共参数2,包括环境信号过滤函数、Bloom过滤器、哈希函数族和网格集合;
步骤1.5所有云服务提供商参数设定单元生成公共参数3,包括前缀长度、双Bloom过滤器,哈希函数和消息认证码;
步骤1.6所有云服务提供商参数设定单元选择哈希函数,三个伪随机函数,生成证明密钥和验证密钥,建立匿名支付方法和智能合约;
步骤二、乘客模块、司机模块向证书颁布中心模块和云服务提供商模块注册,路边节点模块向和云服务提供商模块注册;
步骤二又包括如下子步骤:
步骤2.1乘客模块先利用乘客注册单元向证书颁布中心注册处理单元注册:证书颁布中心注册处理单元选择密钥,计算身份和密钥的密文,即用其他的云服务提供商模块的公钥依次进行加密身份和密钥后得到的密文;证书颁布中心注册处理单元选择随机数,计算匿名密钥,将匿名密钥、密文和对匿名密钥2与密文的签名返回给乘客注册单元;
其中,匿名密钥2是匿名密钥的第2部分;
其中,其他的云服务提供商模块指乘客模块所属云服务提供商模块以外的云服务提供商模块;
步骤2.2乘客注册单元向所属云服务提供商注册处理单元注册,具体为:乘客注册单元向云服务提供商注册处理单元发送匿名密钥2、密文和签名,后者验证该签名的有效性,若通过验证,存储匿名密钥2、密文和签名,否则注册失败,转至下一乘客模块继续注册;
步骤2.3乘客注册单元选择若干个随机数作为自己的私钥,计算对应的公钥;
步骤2.4乘客注册单元选择K+1个密钥,构造哈希函数族;
步骤2.5乘客注册单元计算多个公共地址和私有地址;
步骤2.6乘客注册单元从所属的云服务提供商模块实名购买虚拟货币,以作为打车费用;
步骤2.7司机注册单元向所属云服务提供商注册处理单元注册,具体为:乘客注册单元向云服务提供商注册处理单元发送匿名密钥2、密文和签名,后者验证该签名的有效性,若未通过验证,则注册失败,转至下一司机模块继续注册,若通过验证,云服务提供商存储匿名密钥2、密文和签名,司机注册单元计算多个公共地址和私有地址;
步骤2.8被云服务提供商模块许可的路边节点的路边节点注册单元向该云服务提供商注册处理单元注册,获得公共地址、私有地址和签名的密钥对;
步骤三、乘客模块、司机模块和路边节点模块登录与云服务提供商模块建立连接,所有云服务提供商模块和所有路边节点模块初始化联盟区块链,又包括如下子步骤:其中,乘客模块和司机模块与云服务提供商模块建立连接,具体为:
步骤3.1乘客登录单元、司机登录单元向所属云服务提供商的登录处理单元发送登录请求,后者验证该乘客模块和司机模块的身份合法性,若验证通过,登录处理单元为该乘客登录单元和司机登录单元分发登录令牌,建立连接,否则登录处理单元拒绝该乘客登录单元和司机登录单元的登录请求;
其中,路边节点模块与云服务提供商模块建立连接,具体为:
步骤3.2路边节点登录单元向所属云服务提供商的登录处理单元发送登录请求,后者验证该路边节点模块的身份合法性,若验证通过,登录处理单元为该路边节点模块分发登录令牌,建立连接,否则登录处理单元拒绝该路边节点登录单元的登录请求;
步骤3.3所有云服务提供商联盟区块链维护单元将时间划分为段,一段为一分钟,所有云服务提供商联盟区块链维护单元为所有路边节点联盟区块链维护单元内置同步时钟和领头节点选择函数;
步骤3.4所有云服务提供商联盟区块链维护单元联合创建创世块,包括空块头,路边节点身份、公共地址和所有云服务提供商的签名;所有路边节点联盟区块链维护单元将本地区块链设置为创世块;
步骤四、乘客模块向路边节点模块发送联盟打车请求,又包括如下子步骤:
步骤4.1乘客登录单元登录后通过请求单元生成两个货币和两个存钱交易;
步骤4.2请求单元模块计算匿名身份,收集环境信号,将观察值插入第一Bloom过滤器,选择RSA公私钥匙对和编码公钥,将当前位置转化为最小邻近区域集合,将该集合内的区域编号插入第二Bloom过滤器;
步骤4.3请求单元用公钥加密密钥族和随机数,得到密钥族与随机数的密文;对于非数值型的司机条件,请求单元将该司机条件编码为带有属性标记的关键字,得到一组关键字集合;请求单元将所有关键字哈希进第一双Bloom过滤器;对于数值型的目的地区域,请求单元计算该目的地区域前缀家族,将该前缀家族编码为带有属性标记的关键字,计算第二双Bloom过滤器;请求单元构造IBTree树,生成加密的联盟打车数据包;
步骤4.4请求单元形成联盟打车请求,计算匿名证书和对联盟打车请求的签名,将两个货币、两笔存钱交易、匿名身份、联盟打车请求、匿名证书和签名发送给本地路边节点模块的验证单元;
步骤五、路边节点模块验证步骤四发送来的联盟打车请求,验证通过后再广播该联盟打车请求;再收集司机模块的联盟打车响应,并对乘客模块和司机模块进行匹配,又包括如下子步骤:
步骤5.1路边节点模块登录后接收到请求单元发出的联盟打车请求,验证单元验证两个货币、两笔存钱交易、匿名证书和签名的合法性,若验证通过,进入步骤5.2,否则继续处理下一个乘客模块的联盟打车请求;
步骤5.2路边节点响应单元向覆盖区域内的司机模块广播联盟打车请求;
步骤5.3路边节点模块覆盖区域内登录后收到该联盟打车请求的司机模块的司机登录单元计算匿名身份和环境信号Bloom过滤器,恢复出乘客请求单元公钥;司机响应单元选择通讯密钥,用公钥加密身份和通讯密钥的密文,广播该密文,从附近的司机模块收集这些司机模块广播的密文,形成位置证据,计算当前位置和公钥的哈希值;其中,只有位于乘客模块附近的司机模块才能正确恢复该公钥,且司机模块不知道是否正确恢复出了乘客模块的公钥;
步骤5.4司机响应单元用恢复出的公钥解密密钥族与随机数的密文,得到密钥和随机数,根据乘客条件关键字集合,为每一个关键字计算陷门,计算目的地陷门,生成加密联盟打车数据包;
步骤5.5司机响应单元形成联盟打车响应,计算匿名证书和对联盟打车响应的签名,将匿名身份、联盟打车响应、匿名证书金额签名发送给路边节点模块的匹配单元;
步骤5.6匹配单元向第二Bloom过滤器和IBTree分别查询乘客当前位置与公钥的哈希与两个陷门,给请求单元返一个司机的身份与通讯密钥的密文,给司机响应单元返回该乘客模块的匿名身份;请求单元解密密文得到司机身份与通讯密钥,使用通讯密钥和司机模块通讯,协商具体的上车地点和目的地;在收到乘客模块和司机模块的确认后,匹配的按压RSm向所有云服务提供商上传乘客与司机的联盟打车数据包以作为备份,存储并广播从乘客模块收到的两个货币、两笔存钱交易和与司机模块匹配后的联盟打车交易;
步骤六、乘客模块和司机模块开始联盟打车过程直至完成联盟打车过程,乘客模块向司机模块采用匿名支付方法支付车费,司机模块从所属云服务提供商模块兑现车费,并交纳佣金,又包括如下子步骤:
步骤6.1路边节点联盟区块链维护单元广播乘客模块的两个货币和两个存钱交易,以及一个联盟打车交易;当一次联盟打车过程结束时,支付模块通过拆分先前存的货币形成两个新货币,向收费单元支付车费,第一个新货币是给司机模块的车费,第二个新货币是给该乘客模块的退款;
步骤6.2支付单元向路边节点联盟区块链维护单元发送两个新货币和拆分交易;
步骤6.3路边节点联盟区块链维护单元验证上述两个货币和拆分交易,如果验证通过,路边节点联盟区块链维护单元广播这两个货币和拆分交易,跳至步骤七;否则跳至步骤6.3,继续验证其他货币和交易直至验证结束;
步骤6.4司机模块从所属云服务提供商处取回车费并交纳佣金;
步骤七、所有云服务提供商模块和所有路边节点模块维护联盟区块链,又包括如下子步骤:
步骤7.1联盟区块链的领头节点选择过程;在联盟区块链的第一阶段后的所有时段内,所有路边节点联盟区块链维护单元选出领头节点;
步骤7.2联盟区块链的新块产生过程:当前领头节点创建新块,包括块头、更新后的路边节点存量、
Figure FDA0003071673580000061
个交易的哈希值和签名,并广播新块,所有云服务提供商模块和所有路边节点模块验证该新块,若验证通过,则新块被成功添加,否则由领头节点继续产生新块,直至新块被验证通过;
步骤八、所有云服务提供商模块联合恢复目标用户的真实身份,包括如下子步骤:
步骤8.1如果有目标用户被举报有恶意行为,那么所有云服务提供商的用户身份恢复模块先用自己的秘密分享恢复出群私钥,计算该目标用户的匿名密钥二,利用数据库维护单元在自己的数据库中查找记录;
步骤8.2当一个云服务提供商模块找到上述记录后,由其他云服务提供商单元用自己的私钥依次解密上述目标用户的身份和密钥的密文,得到该目标用户的身份和密钥,所有云服务提供商单元用密钥恢复出该目标用户的联盟打车数据;所有数据库维护单元将该目标用户添加到内部黑名单中;
步骤九、乘客模块、司机模块和路边节点模块向云服务提供商模块发送登出请求,并登出系统。
3.根据权利要求2所述的一种隐私保护的联盟打车方法,其特征在于:步骤一中的云服务提供商模块是指Uber、滴滴出行以及Lyft为主的打车运营服务公司所提供的打车服务模块。
4.根据权利要求2所述的一种隐私保护的联盟打车方法,其特征在于:步骤7.2中,块头包含块号、前块头的哈希值、由
Figure FDA0003071673580000062
个交易建立的Merkle哈希树的根节和时间戳time。
5.根据权利要求2所述的一种隐私保护的联盟打车方法,其特征在于:步骤九,具体为:
步骤9.1乘客模块、司机模块和路边节点模块向所属云服务提供商的登出处理模块发送登出请求,登出处理单元向乘客模块、司机模块和路边节点模块返回登出成功信息,删除乘客模块、司机模块和路边节点模块的登录令牌和连接;
步骤9.2乘客模块、司机模块和路边节点模块接收登出处理单元返回的登出成功信息,删除登录令牌和连接,登出系统,完成本方法。
CN201811181539.6A 2018-10-11 2018-10-11 一种隐私保护的联盟打车方法及系统 Active CN109345438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811181539.6A CN109345438B (zh) 2018-10-11 2018-10-11 一种隐私保护的联盟打车方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811181539.6A CN109345438B (zh) 2018-10-11 2018-10-11 一种隐私保护的联盟打车方法及系统

Publications (2)

Publication Number Publication Date
CN109345438A CN109345438A (zh) 2019-02-15
CN109345438B true CN109345438B (zh) 2021-09-28

Family

ID=65309000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811181539.6A Active CN109345438B (zh) 2018-10-11 2018-10-11 一种隐私保护的联盟打车方法及系统

Country Status (1)

Country Link
CN (1) CN109345438B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831458A (zh) * 2019-03-21 2019-05-31 浙江工商大学 一种iot电子行为记录管理系统
CN110020541B (zh) * 2019-04-19 2020-11-03 北京理工大学 一种基于区块链的隐私保护的声誉评价方法及系统
CN110098919B (zh) * 2019-04-26 2021-06-25 西安电子科技大学 基于区块链的数据权限的获取方法
US11551216B2 (en) * 2019-05-01 2023-01-10 Sony Corporation Transaction security on distributed-ledger based MaaS platform
CN110365485A (zh) * 2019-06-20 2019-10-22 北京理工大学 一种基于区块链的约车的用户隐私保护方案
CN110545325B (zh) * 2019-09-06 2022-07-08 重庆华医康道科技有限公司 一种基于智能合约的数据加密分享方法
CN110572268B (zh) * 2019-09-12 2021-06-15 腾讯科技(深圳)有限公司 一种匿名认证方法和装置
CN110765472B (zh) * 2019-09-30 2023-02-03 广东工业大学 一种基于区块链和分布式存储的位置隐私保护方法
CN111556026B (zh) * 2020-04-08 2020-11-27 东南大学 一种基于联盟链的匿名身份认证方法
CN111553496A (zh) * 2020-04-29 2020-08-18 武汉智鼎云网络科技有限公司 基于联盟区块链的电子保修单管理系统
CN111986000A (zh) * 2020-08-21 2020-11-24 李亮 一种全景购物平台的构建方法及系统
CN112215626B (zh) * 2020-10-22 2022-09-13 合肥工业大学 支持环形订单可验证的网约车系统与方法
CN112752232B (zh) * 2021-01-07 2022-07-12 重庆大学 面向隐私保护的司机-乘客匹配方法
CN113240145B (zh) * 2021-01-27 2023-05-12 中国人民解放军海军工程大学 一种基于保序加密的网约车平台及其方法
CN113423086B (zh) * 2021-03-18 2022-08-05 北京邮电大学 车辆匹配方法及其相关设备
CN112925956B (zh) * 2021-03-25 2022-03-08 广西师范大学 一种物联网大规模时序数据访问控制方法
CN113836576B (zh) * 2021-08-25 2023-07-07 安徽高山科技有限公司 一种用于打车软件的用户隐私数据保护方法
CN113965617A (zh) * 2021-08-26 2022-01-21 天地融科技股份有限公司 一种基于物联网打车的方法、装置及系统
CN114866294B (zh) * 2022-04-20 2023-09-08 桂林电子科技大学 云监管的网约车通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105741536A (zh) * 2016-03-18 2016-07-06 北京理工大学 一种匿名打车系统及移动安全支付方法
CN107886388A (zh) * 2017-09-22 2018-04-06 杭州云象网络技术有限公司 基于联盟链实现多中心化的交通出行信用与安全服务平台及其运行方法
CN107911216A (zh) * 2017-10-26 2018-04-13 矩阵元技术(深圳)有限公司 一种区块链交易隐私保护方法及系统
CN108566383A (zh) * 2018-03-22 2018-09-21 西安电子科技大学 一种面向在线打车服务的隐私保护系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10611474B2 (en) * 2017-03-20 2020-04-07 International Business Machines Corporation Unmanned aerial vehicle data management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105741536A (zh) * 2016-03-18 2016-07-06 北京理工大学 一种匿名打车系统及移动安全支付方法
CN107886388A (zh) * 2017-09-22 2018-04-06 杭州云象网络技术有限公司 基于联盟链实现多中心化的交通出行信用与安全服务平台及其运行方法
CN107911216A (zh) * 2017-10-26 2018-04-13 矩阵元技术(深圳)有限公司 一种区块链交易隐私保护方法及系统
CN108566383A (zh) * 2018-03-22 2018-09-21 西安电子科技大学 一种面向在线打车服务的隐私保护系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Efficient and Privacy-Preserving Carpooling Using Blockchain-Assisted Vehicular Fog Computing;Meng Li等;《IEEE Internet of Things Journal》;20180831;第6卷(第三期);4573-4584 *

Also Published As

Publication number Publication date
CN109345438A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN109345438B (zh) 一种隐私保护的联盟打车方法及系统
CN110020541B (zh) 一种基于区块链的隐私保护的声誉评价方法及系统
CN109451467B (zh) 一种基于区块链技术的车载自组织网络数据安全共享与存储系统
CN110069345B (zh) 基于区块链的众包资源分布式匿名配给方法及其配给系统
CN108734576B (zh) 一种基于区块链的教育资源共享方法及系统
CN111464980B (zh) 一种车联网环境下基于区块链的电子取证装置及取证方法
CN108429759B (zh) 去中心化存储安全实现方法
CN107528835B (zh) 一种基于安全的智能合约k-匿名激励机制的用户隐私保护方法
CN103918219B (zh) 基于秘密共享的电子内容分发的方法和装置
CN114143080A (zh) 基于零知识证明的区块链数据隐私保护和共享方法
CN110599147A (zh) 一种基于区块链的密文检索公平支付方法及系统
Wang et al. Secure ride-sharing services based on a consortium blockchain
CN111292014B (zh) 一种基于联盟链的智能农机调度系统及其调度方法
CN112434343A (zh) 一种基于双重区块链技术的虚拟电厂安全调度与交易方法
CN113114630B (zh) 一种电动汽车动态无线充电隐私保护的认证方法及系统
CN113065961A (zh) 一种电力区块链数据管理系统
CN112019549B (zh) 基于区块链的电力交易系统以及交易方法和账单查询方法
CN110677395B9 (zh) 基于安全且具备隐私保护的激励方法及实时地图更新系统
CN115688191A (zh) 一种基于区块链的电子签章系统及方法
CN115049398A (zh) 一种完备的数据资产可信管理和价值流转系统和方法
CN115801260B (zh) 一种不可信网络环境下区块链辅助的协作式攻防博弈方法
CN114565386A (zh) 多方协同隐私保护的区块链托管交易方法及系统
CN111507747B (zh) 一种区块链积分兑换里程系统
CN115811406A (zh) 一种基于环签名共识机制的物联网区块链认证方法和系统
CN109600338B (zh) 一种可信身份管理服务方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant