doi:10.3969/j.issn.1003-3114.2023.04.006
引用格式:蒋宇河,乔少杰,陈金勇,等.一种基于移动数据挖掘和区块链的数据共享方法[J].无线电通信技术,2023,49(4):629-639.[JIANG Yuhe,QIAO Shaojie,CHEN Jinyong,et al.A Data Sharing Method Based on Mobile Data Mining and Blockchain
[J].Radio Communications Technology,2023,49(4):629-639.]
一种基于移动数据挖掘和区块链的数据共享方法
蒋宇河1,乔少杰1∗,陈金勇2,张㊀桃3,高㊀林2,林羽丰1,李㊀庆1,徐康镭1,
刘晨旭1,李任杰1
(1.成都信息工程大学软件工程学院,四川成都610225;2.中国电子科技集团公司第五十四研究所,河北石家庄050081;
3.宜宾学院人工智能与大数据学部,四川宜宾644000)
摘㊀要:移动数据挖掘是指对移动设备中大规模数据进行挖掘和分析的过程,获取有用的信息和知识,以
支持移动应用和服务的开发和改进㊂区块链是一种分布式的㊁去中心化的数据库技术,可以实现在网络中多方之间安全地传输信息㊁交易资产,不依赖于中心化的机构或第三方信任机构㊂然而,面对复杂的移动数据场景,现有的隐私保护㊁索引选择等方法存在诸多不足,如无法高效处理大数据量的加解密任务㊁区块链上数据分布不均㊁无法有效应对移动设备计算能力不足等问题㊂针对上述不足,提出一种基于移动数据挖掘和区块链的数据共享方法(A Data Sharing Method
for Mobile Data Mining and Blockchain,ADS-MB)㊂ADS-MB 集成了密钥分片共享算法,可有效避免密钥被第三方获取或
篡改而导致隐私内容泄露㊂ADS-MB 使用基于SM2的改进算法来加强区块链数据的一致性和安全性,同时支持动态的区块链索引维护㊂实验结果表明,在真实移动业务数据集和WeiboDataShare 数据集上,ADS-MB 的性能优于现有的数据分享方法
杭州电子科技大学
关键词:移动数据挖掘;区块链;数据共享;隐私保护;索引维护中图分类号:TP311㊀㊀㊀
文献标志码:A㊀㊀㊀
开放科学(资源服务)标识码(OSID):
文章编号:1003-3114(2023)04-0629-11
收稿日期:2023-03-07
基金项目:国家自然科学基金(62272066,61962006);四川省科技计划(2021JDJQ0021,2022YFG0186,2022NSFSC0511,2023YFG0027,
2022YFG0325,2021YFG0029);教育部人文社会科学研究规划基金(22YJAZH088);宜宾市引进高层次人才项目(2022YG02);成都市 揭榜挂
帅 科技项目(2022-JB00-00002-GX,2021-JB00-00025-GX);成都市重大科技创新项目(2021-YF08-00156-GX);中国电子科技集团公司第五十
四研究所高校合作课题(SKX212010057);四川省教育厅人文社科重点研究基地四川网络文化研究中心资助科研项目(WLWH22-1);成都信息工程大学科技创新能力提升计划资助(KYTD202222);成都海关科研项目(2022CK008)
Foundation Item :National Natural Science Foundation of China (62272066,61962006);Sichuan Science and Technology Program (2021JDJQ0021,
2022YFG0186,2022NSFSC0511,2023YFG0027,2022YFG0325,2021YFG0029);Planning Foundation for Humanities and Social Sciences of Ministry of
Education of China (22YJAZH088);High-level Talent Introduction Project of Yibin (2022YG02);Chengdu  Take the lead Science and Technology Project (2022-JB00-00002-GX,2021-JB00-00025-GX);Chengdu Major Science and Technology Innovation Project (2021-YF08-00156-GX);The 54th
Research Institute of China Electronics Technology Group Corporation-University Cooperation Project (SKX212010057);Web Culture Project Sponsored
by the Humanities and Social Science Research Base of the Sichuan Provincial Education Department (WLWH22-1);Science and Technology Innovation
Capability Improvement Project of Chengdu University of Information Technology (KYTD202222);Chengdou Customs Scientific Research Project (2022CK008)A Data Sharing Method Based on Mobile Data Mining and Blockchain
JIANG Yuhe 1
,QIAO Shaojie
1∗
,CHEN Jinyong 2
,ZHANG Tao 3
,GAO Lin 2
,LIN Yufeng 1
,LI Qing 1
,XU Kanglei 1,
LIU Chenxu 1,LI Renjie 1
(1.School of Software Engineering,Chengdu University of Information Technology,Chengdu 610225,China;
2.The 54th Research Institute of CETC,Shijiazhuang 050081,China;
3.Faculty of Artificial Intelligence and Big Data,Yibin University,Yibin 644000,China)
Abstract :Mobile data mining refers to the process of mining and analyzing large-scale data on mobile devices to obtain useful in-
formation and knowledge,which aims to support the development and improvement of mobile applications and services.Blockchain is a distributed,decentralized database technology that can securely transfer information,perform asset trading between multiple parties in a network,without relying on centralized or third-party trust organizations.However,existing privacy protection and index selection meth-ods have several challenges in complex mobile data scenarios,such as inefficient processing of large amounts of encryption and decryp-tion assignments,uneven distribution of data on the blockchain,and ineffective handling of insufficient computing power on mobile de-vices.To address these issues,a data sharing method called ADS-MB(A Data Sharing method for Mobile data mining and Blockchain) is proposed.ADS-MB integrates key fragment sharing algorithm,which can effectively avoid the leak of privacy contents caused by third-party s acquisition or tampering of keys.ADS-MB uses an improved algorithm based on SM2to strengthen the consistency and security of blockchain data,and also supports dynamic blockchain index maintenance.A large number of experimental results show that ADS-MB performs better than the existing data sharing methods on real mobile business datasets and WeiboDataShare datasets. Keywords:mobile data mining;blockchain;data sharing;privacy protection;index maintenance
0㊀引言
随着移动互联网时代的到来,在各式各样的移
动设备中产生了海量的数据,这些数据中蕴含着许
多有价值的信息和知识,对于移动应用和服务的开
发和改进具有重要意义[1]㊂然而,这些数据往往是分散㊁复杂和隐私敏感的,如何把这些海量的数据进
行传输和分享,同时保障数据的隐私安全[2],是一个亟待解决的问题㊂
近年来,区块链技术作为一种分布式㊁去中心化
的数据库技术,被广泛应用于数据安全和交易领
域[3]㊂区块链通过去中心化的共识机制㊁加密算法和分布式存储等方式,实现了数据的安全性和可信性[4]㊂同时,随着区块链技术的不断发展,许多新的应用场景和技术也得以诞生[5],例如智能合约[6]㊁联盟链[7]等㊂
然而,区块链技术在处理大规模数据㊁隐私保
护㊁数据存储等方面仍存在诸多问题[8],例如数据的分布不均衡㊁加解密效率低下㊁隐私保护不足等㊂为了解决上述问题,研究者们提出了许多针对性的解决方案和方法㊂其中,密钥分片共享算法被广泛应用于数据隐私保护和数据共享等领域[9],可有效避免密钥被三方获取或篡改而导致隐私内容泄露;非对称式加密算法通常用于保护数据的机密性㊁完整性和认证数据的真实性[10];区块链动态索引的维护算法用于提高区块链中的数据查询效率和准确性[11]㊂
基于以上问题,本文提出一种基于移动数据挖
掘和区块链的数据共享方法(A Data Sharing method for Mobile data mining and Blockchain,ADS-MB)㊂ADS-MB的原创性工作包括:
①提出一种密钥分片共享算法,能有效地增强数据的安全性和隐私保护能力,从而防止密钥被区块链上恶意节点获取后导致整个区块链的崩溃;②提出一种基于SM2算法的改进算法,能够准确地对需要加密的数据内容进行编码,防止用户设备的隐私数据外泄;
③提出一种区块链动态索引的维护算法,能全面简化区块链上数据的检索流程,动态索引的建立可使数据的检索更加高效;
④在真实移动业务数据集[12]和WeiboData-Share数据集[13]上进行大量对比实验,证明了本文所提方法的实用性和有效性㊂
1㊀相关工作
1.1㊀密钥分片共享
密钥分片共享是指将一个密钥分割成多个片段,并将这些片段分别分配给多个参与方,以确保只有在获得全部密钥片段的情况下才能恢复出完整的密钥[14]㊂因为攻击者需要获取所有密钥片段才能恢复出完整的密钥,所以这种技术可以提高密钥的安全性㊂同时,密钥分片共享算法也可以用于实现多方协作计算,其中每个参与方只持有密钥的一部分,并且只有在获得所有参与方的密钥片段时才能完成计算[15]㊂其难点包括:
①如何将密钥分成若干个片段,并保证每个片段的安全性和独立性,提高了共享技术的设计难度;②
如何保证密钥分片的安全性以及在存储和
传输过程中的安全性是成功实现密钥分片共享算法的关键;
③使用密钥时需要将密钥分片进行合并,如何实现密钥分片的合并以及在合并过程中保证密钥的完整性和安全性,是设计密钥共享方法的研究重点㊂1.2㊀SM2算法
SM2算法是国家密码管理局推出的一种非对称加密算法[16]㊂SM2算法基于椭圆曲线密码学设计而成,适用于数字签名㊁密钥交换和加解密等场景[17]㊂与(Rivest-Shamir-Adleman,RSA)方法相比, SM2算法具有更高的安全性和更高的运算速度,适用于移动设备等资源受限的场景[18]㊂SM2算法采用的椭圆曲线参数是在国家密码管理局发布的标准曲线中选取的,经过严格的安全评估和测试,已被广泛应用于各种安全领域㊂SM2算法在移动数据挖掘领域中面临的挑战包括:①移动设备的计算资源有限,需要设计更加高效的算法实现,以减少计算开销;②在使用SM2算法进行加解密过程中,需要保护用户的隐私信息,防止信息被攻击者窃取,因此需要合理的加密措施;③SM2算法是一种基于椭圆曲线离散对数问题的非对称加密算法,需要保证其安全性,防止攻击者通过破解密钥或其他方法获取敏感信息㊂
1.3㊀区块链动态索引
区块链动态索引是指根据不同的数据需求和查询方式,动态地生成区块链中数据的索引结构[19],相比于传统的静态索引结构更加灵活和高效㊂动态索引建立的主要思路是将区块链中的数据特征化,根据数据的特征值建立相应的索引,然后在查询时利用这些索引来定位数据[20],其应用难点在于:①由于区块链的分布式特性,数据可能分布在不同的节点上,且数量可能不均匀㊂因此,如何有效地构建索引结构以快速访问数据是一个挑战㊂②区块链上的数据随时可能发生变化,如何保证索引的实时更新和准确性也是一个挑战㊂
③区块链上的数据可能对不同的角具有不同的访问权限,如何保证索引只对有权限访问的用户可见也是一个挑战㊂2㊀问题表述与算法模型
2.1㊀主要概念
定义1㊀(SM2算法的公钥和私钥):在SM2算
法中,中心数据处理者CDhandler需要给自己分发
公钥Pubk和私钥Pk㊂使用MClient1,MClient2, , MClient i表示参与数据分享的全部i个移动设备端㊂
定义2㊀(密钥分片):在密钥分片共享算法中,
中心数据处理者CDhandler把自己的公钥Pubk按照一定的规则分割成j个密钥片Pubkf1,Pubkf2, , Pubkf j,并把j个密钥片随机分配给j个移动设备端MClient1,MClient2, ,MClient j㊂对于密钥分片的数量j,需保证j<i㊂
定义3㊀(区块链):在区块链动态索引的维护算法中,中心数据处理者CDhandler可以创建和管理区块链,每个区块链中可以包含l个保存有加密后用户数据CMessage的结点SCnode㊂定义保存区块链索引数组的数组为ISchain㊁需要加密的信息为Message和保存有区块链索引的索引为Index㊂使用Schain表
示中心数据处理者CDhandler维护的区块链,l个加密后的信息可以表示为:CMessage1,CMessage2, , CMessage l,l个存放加密后的信息CMessage的结点可以表示为SCnode1,SCnode2, ,SCnode l㊂
2.2㊀基于移动数据挖掘和区块链的数据共享方法
如图1所示,ADS-MB包含3个重要的组成部
分:①密钥分片共享算法:包括对公钥的分片化处
理和密钥分片的分发,基于https(Hypertext Transfer Protocol Secure)协议安全地传输密钥分片,从而实现安全的密钥分片共享㊂②基于SM2算法的改进算法:通过密钥分片恢复出完整的公钥,通过向明文消息前后随机填充一些字符,使得对同一个内容的每次加密的结果都不同,增加安全性㊂将消息分为多个长度相等的组进行加密,提高加密效率㊂以及一个交错加密机制,用于将加密后的分组交错在一起,进一步强化加密效果㊂③区块链动态索引的维护算法:根据当前原始数据进行预处理,如数据清洗㊁特征提取等,以便后续的索引建立㊂将处理后的数据按照索引结构进行构建,并将其存储到区块链索引数组上㊂随着新的数据加入和旧的数据删除,动态地更新索引
图1㊀ADS-MB的整体架构Fig.1㊀Architecture of ADS-MB
㊀㊀数据共享方法分为密钥分片共享阶段㊁数据加解密阶段和区块链动态索引的维护阶段㊂在密钥分片共享阶段,中心数据处理者把自己的公钥Pubk按照定义的规则分割成j个密钥片并分发给j个移动设备端,用以保证密钥分享的安全性㊂
在数据加解密阶段,移动设备端向j个被分配了中心数据处理者的公钥分片的移动设备端请求公钥分片,恢复为完整公钥㊂向明文消息前后随机填充一些字符,把需要向CDhandler传输的移动数据分组,进行基于SM2算法的加密㊂加密后的数据分组交错合并,通过把交错后的加密移动数据存放到区块链中向CDhandler分享隐私的移动数据㊂在区块链动态索引的维护过程中,对加密后的数据进行基于散列函数[21]的特征提取,从提取特征中建立对应的索引,对区块链的新增㊁修改和删除等操作,实时地更新索引,从而保证区块链索引的有效性和实时性㊂
2.3㊀密钥分片共享算法
密钥分片共享算法步骤如算法1所示㊂
算法1㊀密钥分片共享算法
输入:CDhandler的公钥Pubk,需要分片的数量j,所有的移动设备的数组MClient
输出:分片后的密钥Pubkf1,Pubkf2, ,Pubkf j
1.㊀获取并初始化CDhandler的公钥Pubk;
2.获取并初始化获取Pubk的长度为Length;
3.获取并初始化需要分片的数量j;
4.初始化目前分片的数量为Temp并赋初值0;
5.初始化保存临时的密钥分片为Tempkf并赋初值0;
6.初始化分片后的密钥Pubkf1,Pubkf2, ,Pubkf j.并赋
初值0;
7.获取并初始化所有的移动设备为数组MClient;8.㊀初始化接收密钥分片的移动设备为MClient1,
MClient2, ,MClient j;
9.初始化待发送移动设备数组AMClient并赋初值0;
10.while Temp<j do
11.㊀截取Pubk的第TempˑLength j~(Temp+1)ˑLength j位
保存到Tempkf中;
12.把获取的临时密钥分片Tempkf复制到Pubkf(temp+1)中;
13.㊀Temp=Temp+1;
15.Temp=1;
16.从MClient中随机选择j个不重复的设备MClient1,
MClient2, ,MClient j保存到待发送移动设备数组
AMClient中:
㊀AMClient=RandomChoose(MClient,j);
17.for Pubkf1,Pubkf2, ,Pubkf j do
18.㊀使用https协议传输密钥分片到待发送移动设备数
组AMClient中第Temp个设备:
㊀㊀Transhttps(Pubkf Temp,AMClient Temp);
19.㊀Temp=Temp+1;
㊀㊀密钥分片共享算法包括密钥分片和密钥分片分发两个流程㊂使用密钥分片共享算法可以提高公钥分享的安全性,避免公钥被第三方获取或篡改而导致的隐私内容泄露㊂设计合理的密钥分片共享算法能有效缩减密钥共享处理时间,提高密钥共享效率㊂算法复杂性分析:在算法1中,已知待分片的数量为j,并把j个密钥分片分发给j个移动设备,则算法的整体时间复杂度为O(j)㊂
示例1:如图2所示示例用于说明密钥分片流程㊂示例包含CDhandler的公钥Pubk为04c8a4a9 fb866a7e1a2ac0f3b44a3d7d584a439c93ab52f4bff4fdb1 0ef1086e26982e2307443deced0c4cd6360bd12802d29d
73c26e3e80f1cd35af1e82f05949,需要分片的数量j 为3,分片后的密钥分片Pubkf 1,Pubkf 2,Pubkf 3
图2㊀密钥分片流程
Fig.2㊀Process of key fragmentation
示例2:如图3所示示例用于说明密钥分片分发流程㊂示例包含分片后的密钥分片Pubkf 1,Pubkf 2,Pubkf 3和3个接收密钥分片的移动设备MClient 1,MClient 2,MClient 3
图3㊀密钥分片分发流程
Fig.3㊀Process of key fragmentation distribution
在算法开始时,采用while 循环对公钥Pubk 按照待分片的数量j 进行分片处理,从而获得j 个公钥分片Pubkf 1,Pubkf 2, ,Pubkf j ㊂然后从区块链网络所有的参与移动设备MClient 中随机选择j 个不重复的移动设备,存入待发送移动设备数组AMClient ㊂最后,采用https 协议对分片好的密钥片Pubkf 1,Pubkf 2, ,Pubkf j 根据待发送移动设备数组AMCli-ent 进行逐一分发㊂算法可在现有公钥共享流程的基础上进行密钥的分片和分片密钥的分发操作,用于密钥分片共享操作㊂
2.4㊀基于SM2算法的改进算法
基于SM2算法的改进算法包括密钥恢复㊁随机字符填充㊁数据分组加密和交错加密4个流程㊂
使用密钥恢复可以恢复出经过密码分片处理之前的原始公钥,有效避免公钥被第三方获取或篡改而导致的隐私内容泄露㊂通过向明文消息前后随机填充一些字符,使得对同一个内容的每次加密的结果均不同,在几乎不影响加密效果的情况下提高数据安全性㊂分组加密将消息分为多个长度相等的组进行加密,提高加密效率㊂交错加密机制,用于将加密后的每个分组交错在一起,进一步增强加密效果㊂基于SM2算法的改进算法步骤如算法2所示㊂
算法2㊀基于SM2算法的改进算法
输入:需要加密的信息Message ,保存有分片密钥的移动设备MClient 1,MClient 2, ,MClient j ,分组加密的组数m 输出:加密后的信息CMessage 1.㊀初始化CDhandler 的公钥Pubk ,并赋初值空;
2.初始化CDhandler 的临时公钥TPubk ,并赋初值空;
3.初始化控制循环的变量Temp ,并赋初值0;
4.获取并初始化需要加密的信息Message ;
5.初始化需要分组加密的信息片数组AMessage ,并赋初值空;
6.初始化需要分组加密的信息片AMessage 1,AMessage 2, ,AMessage m ,并赋初值空;
7.初始化加密后的信息CMessage ,并赋初值空;8.获取并初始化分组加密的组数m ;
9.
获取并初始化保存有分片密钥的移动设备MClient 1,MClient 2, ,MClient j ;
10.for MClient 1,MClient 2, ,MClient j do
11.通过https 协议请求密钥分片Pubkf Temp 并合并到临时公钥TPubk 中:
㊀㊀TPubk =TPubk +RequestKF (MClient Temp );
12.㊀Temp =Temp +d for
14.Pubk =TPubk ;
15.向需要加密的信息Message 前后各填充10位随机数字并赋值给需要加密的信息Message :
16.㊀Message =FillRandomNumber (Message );17.Temp =0;18.for temp <m do
19.获取需要加密的信息Message 第Temp 个信息片并存入需要分组加密的信息片数组AMessage 中:
㊀㊀AMessage Temp =DivideMessage (Message ,Temp );
20.
使用恢复的公钥Pubk 对需要分组加密的信息片数组AMessage 第Temp 个信息片使用SM2算法进行加密,合并到加密后的信息CMessage 中:
㊀CMessage =CMessage +Enc (AMessage Temp ,Pubk );
21.Temp =Temp +d for
23.
对加密后的信息CMessage 进行交错加密得到交错之后的信息并赋值给CMessage ,并同步到区块链:CMessage =InterleavedEncryption (CMessage );SaveToBlockchain (CMessage );
㊀㊀算法复杂性分析:在算法2中,已知保存有分片密钥的移动设备个数为j ,分组加密的组数为m ,则
算法的整体时间复杂度为O (j )+O (m )㊂
示例3:如图4所示示例用于说明密钥恢复流程㊂示例包含保存有分片密钥的移动设备MCli-ent 1,MClient 2, ,MClient j ,分片的数量j 为3,3
个密