掌桥专利:专业的专利平台
掌桥专利
首页

一种基于大数据与云边协同的智慧医疗系统

文献发布时间:2023-06-19 19:00:17


一种基于大数据与云边协同的智慧医疗系统

技术领域

本发明涉及数据加密传输领域,具体涉及一种基于大数据与云边协同的智慧医疗系统。

背景技术

智慧医疗是智慧城市的一个重要组成部分,是综合应用医疗物联网、数据融合传输交换、云计算、城域网等技术,通过信息技术将医疗基础设施与IT基础设施进行融合,以“医疗云数据中心”为核心,跨越原有医疗系统的时空限制,并在此基础上进行智能决策,实现医疗服务最优化的医疗体系。

而云边协同的架构能够以计算、存储、网络、数据等各种资源分别协同方式,使得医疗数据的分析和处理由云端和边缘节点相互配合进行,极大提高了数据处理效率。在云边协同的过程中,涉及到边缘节点与云端之间医疗数据的传输与交互,为了提高传输的效率,需要对医疗数据进行压缩。由于医疗数据涉及患者的隐私,因此需要对边缘节点与云端之间传输交互的医疗数据进行加密。

现有的加密方法如AES、DES为分组加密方法,会将明文分为固定长度的多个明文组,当明文长度不足以分为固定长度的多个明文组时,需要对明文进行填充,最终得到的密文长度与填充之后的明文长度相同。因此现有的加密方法如AES、DES仅能达到加密的效果,无法达到压缩的效果。

现有的压缩方法如LZW、LZ等利用数据之间重复出现的规律进行压缩,使得最终的压缩结果中包含了原始数据中的数据规律,攻击者可利用数据规律解码得到原始数据。因此现有的压缩方法如LZW、LZ编码等仅能达到压缩的效果,无法达到加密的效果。

因此利用现有方法对医疗数据进行压缩加密需要先压缩再加密或先加密再压缩,效率较低。

发明内容

为了解决上述问题,本发明提供一种基于大数据与云边协同的智慧医疗系统,所述系统包括:

信息采集模块,采集医疗数据;

信息预处理模块,提取医疗数据中的特征,根据医疗数据以及特征获取明文数据,所述明文数据中包含多个明文;

密钥获取模块,将所有预设长度的二进制数作为后缀编码,将每个后缀编码随机分配给一种明文,将明文与后缀编码的对应结果作为加密字典;获取第一密钥;

信息加密模块,将明文数据划分为多个明文段;构建一个空的编码字典;根据明文段的数量获取第二长度;

依次对每个明文段进行编码,包括:

S1:对第i个明文段进行编码,当i为1时,将0转换为长度为第二长度的二进制数,将所得结果作为前缀编码,将第i个明文段中明文在加密字典中对应的后缀编码拼接在前缀编码之后,得到第i个明文段的码字;

S2:当i大于1时,根据编码字典中每一行的频率获取待置乱行序列以及非待置乱行序列;获取第i个明文段的置乱位置序列;根据置乱位置序列、待置乱行序列以及非待置乱行序列对编码字典进行置乱;根据编码字典以及加密字典获取第i个明文段的前缀编码以及后缀编码;将后缀编码拼接在前缀编码之后,得到第i个明文段的码字;

S3:将第i个明文段以及第i个明文段的码字填入到编码字典中索引为i的行中;

依次将每个明文段的码字拼接在一起作为密文数据;

信息传输模块,边缘节点将密文数据传输至云端;

云平台处理模块,云端对密文数据进行解密,得到医疗数据以及特征,根据医疗数据以及特征进行异常分析。

优选的,所述根据明文段的数量获取第二长度,包括的步骤为:

所有明文段的数量为m,将

优选的,所述根据编码字典中每一行的频率获取待置乱行序列以及非待置乱行序列,包括的步骤为:

获取编码字典中每一行的明文段列的内容作为所有已编码的明文段的前缀的次数,利用所述次数除以编码字典的行数i,将所得结果作为编码字典的每一行的频率;

根据每一行的频率对所有行进行排序,当频率相同时,对频率相同的行按照每一行在编码字典中的顺序排序,将排序结果中前

优选的,所述获取第i个明文段的置乱位置序列,包括的步骤为:

第一密钥为

当i=2时,将第一密钥中的

当i大于2时,获取对第i-1个明文段进行编码时得到的混沌序列中最后一个元素

将混沌序列中每个元素乘以i之后再向上取整,得到的结果构成的序列作为第i个明文段的置乱位置序列。

优选的,所述根据置乱位置序列、待置乱行序列以及非待置乱行序列对编码字典进行置乱,包括的步骤为:

将置乱位置序列中每个元素依次作为待置乱行序列中每个待置乱行的置乱位置;将编码字典中的内容置为空;

依次将待置乱行序列中每个待置乱行的内容放置在编码字典中,包括:

第j个待置乱行的置乱位置为

最终得到的编码字典为置乱后的编码字典。

优选的,所述根据编码字典以及加密字典获取第i个明文段的前缀编码以及后缀编码,包括的步骤为:

当第i个明文段包含一个明文时,获取编码字典中空的前缀对应的索引,将索引转换为长度为第二长度的二进制数,作为第i个明文段的前缀编码;将第i个明文段包含的明文作为第i个明文段的后缀;

当第i个明文段包含两个或两个以上的明文时,将第i个明文段中最后一个明文作为第i个明文段的后缀,将第i个明文段中其余明文构成的明文段作为第i个明文段的前缀;获取编码字典中第i个明文段的前缀对应的索引,将索引转换为长度为第二长度的二进制数,作为第i个明文段的前缀编码;

将第i个明文段的后缀在加密字典中对应的后缀编码作为第i个明文段的后缀编码。

本发明实施例至少具有如下有益效果:

1.现有的加密方法如AES、DES仅能达到加密的效果,无法达到压缩的效果,现有的压缩方法如LZW、LZ编码等仅能达到压缩的效果,无法达到加密的效果,利用现有方法对医疗数据进行压缩加密需要先压缩再加密或先加密再压缩,效率较低。本发明可对医疗数据进行加密的同时实现医疗数据的压缩,因此本发明中的方法相对于现有的方法效率更高,确保了医疗数据的安全、高效传输;

2.本发明中的加密字典存在非常多种可能性,因此密钥空间大,可抗暴力破解攻击;本发明通过加密字典获取明文段的后缀编码,攻击者在未掌握加密字典的情况下,无法根据后缀编码猜测出对应的前缀,确保了密文数据的安全性。

3.本发明通过在每次对明文段进行编码之前,对编码字典中已有的内容进行置乱,打破了编码字典中原有的顺序规律,使得明文段的前缀编码无规律性,进一步使得最终的加密结果更加复杂无规律,可抵抗统计分析攻击,确保了医疗数据传输过程中的安全性;

4.本发明结合编码字典中每一行的频率来获取待置乱行,减少了获取置乱位置序列时混沌映射模型迭代的次数以及对编码字典中的行的置乱次数,使得加密压缩过程更加高效,同时确保了置乱效果,使得医疗数据的传输更加高效、更加安全。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1为本发明一个实施例提供的一种基于大数据与云边协同的智慧医疗系统的系统框图。

具体实施方式

为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于大数据与云边协同的智慧医疗系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。

下面结合附图具体的说明本发明所提供的一种基于大数据与云边协同的智慧医疗系统的具体方案。

请参阅图1,其示出了本发明一个实施例提供的一种基于大数据与云边协同的智慧医疗系统,该系统包括以下模块:

信息采集模块S101,采集医疗数据。

医疗终端采集患者的医疗数据,并传输至边缘节点,如血压仪采集患者的血压、CT机采集患者的CT影像、心电图机采集患者的心电图信号等。

需要说明的是,边缘节点为部署在医疗终端边缘的设备,与医疗终端属于同一个局域网,医疗终端向边缘节点传输医疗数据不涉及互联网传输,因此可确保医疗数据的传输安全。

至此,获取了医疗数据。

信息预处理模块S102,对医疗数据进行特征提取,获取明文数据。

边缘节点对医疗数据进行预处理,提取医疗数据中的特征。

需要说明的是,通过边缘节点对医疗数据进行预处理,再将预处理之后的数据传输至云端进行进一步的分析的云边协同模式,可减少云端的计算量。云边协同模式将医疗数据的预处理任务分散到多个边缘节点分布处理,可提高对医疗数据进行分析处理的速度,提高患者的就医效率。

需要进一步说明的是,由于边缘节点到云端的数据传输涉及到广域网通信,传输的医疗数据可能会被窃取,从而导致患者的隐私被泄露,为了确保医疗数据的机密性同时提高传输效率,需要对经过边缘节点预处理的医疗数据进行加密压缩。在本发明实施例中,将医疗数据与边缘节点提取的医疗数据中的特征一同传输至云端,由于医疗数据以及提取的医疗数据中的特征的数据类别较为丰富,如图像、文本等。为了方便加密压缩,需要将医疗数据以及医疗数据中的特征转换为统一的格式。

在本发明实施例中,将医疗数据以及提取的医疗数据中特征分别编码成二进制形式,分别记为医疗二进制以及特征二进制,将特征二进制拼接在医疗二进制之后,得到一个二进制串。记录特征二进制的长度S。需要说明的是,本发明实施例中针对文本类型医疗数据以及医疗数据中特征采用Unicode编码方法,针对图像类型的医疗数据以及医疗数据中特征采用将图像中的每个像素值转换为长度相同的二进制数的编码方法,在其他实施例中,实施人员可根据需要设置对医疗数据以及医疗数据中特征的编码方法。

将二进制串每k位划分为一组,则每组为一个二进制数,如此得到多组二进制数,其中最后一组二进制数长度小于或等于k,获取最后一组二进制数的长度,记为第一长度,用n表示。将每组二进制数转换为十进制数,将每个十进制数作为一个明文。将所有明文按照顺序组成一个一维的序列,作为明文数据。需要说明的是,k为预设长度,本发明实施例中k=8,在其他实施例中,实施人员可根据需要设置k的值,为确保加密结果的复杂性,需满足

至此,获取了明文数据。

密钥获取模块S103,获取加密字典以及第一密钥。

需要说明的是,本发明实施例的目的是基于LZ编码进行改进,从而达到加密以及压缩的效果。在LZ编码算法中,首先需要为数据中出现的每种字符分配一个后缀编码,本发明实施例中,数据中出现的每种字符对应明文数据中的每种明文。由于每种明文均为十进制数字,在一般情况下,为十进制数字分配的后缀编码为该十进制数字对应的二进制数字,此时明文与其后缀编码之间的关系透明,明文与其后缀编码可通过十进制数与二进制数转换的方法互相转换,攻击者可根据后缀编码来获得明文。为了达到加密的效果,可为每种明文随机分配后缀编码,来实现明文与后缀编码的关系隐藏,使得攻击者根据后缀编码无法猜测出对应明文。

在本发明实施例中,为每种明文分配后缀编码的具体过程如下:

明文序列中每个明文由长度为k或小于k的二进制数转化而来,则每个明文的取值范围为

至此,获取了加密字典。需要说明的是,将每个后缀编码随机分配给一种明文,一共有

需要说明的是,LZ编码通过获取当前编码内容的前缀编码与后缀编码来实现对当前编码内容的编码。前缀编码可反应当前编码内容与已编码内容之间的关系,为了防止攻击者根据前缀编码猜测当前编码内容从而破解加密结果,则需隐藏当前编码内容与已编码内容之间的关系。本发明实施通过第一密钥结合Logistic混沌映射算法的方法来对已编码内容进行调整,使得获得的当前编码内容的前缀编码混乱,攻击者无法根据前缀编码来猜测破解加密结果,使得加密结果可抵抗统计分析攻击。

在本发明实施例中,第一密钥为

至此,获取了第一密钥。

需要说明的是,加密字典以及第一密钥由云端和边缘节点事先约定,并分别存储在云端以及边缘节点。加密字典用来获取明文与后缀编码的对应关系,第一密钥用来对已编码内容进行调整,从而隐藏前缀编码中包含的当前编码内容与已编码内容之间的关系。通过加密字典以及第一密钥可使得后续加密结果复杂,抵抗暴力破解攻击以及统计分析攻击。

信息加密模块S104,对明文数据进行加密,获取密文数据。

首先按照每段尽可能短且各段均不相同的原则将明文数据进行分为多段,将每段分别作为一个明文段。每个明文段包含1个或1以上的明文。如明文数据{1,1,2,4,1,2,3}分为4个明文段,分别为1,(1,2),4,(1,2,3)。

构建一个空的编码字典,编码字典第一列为索引列,记录每行的索引,编码字典第二列为明文段,记录每行编码的内容,编码字典的第三列为码字,记录每行编码的结果。

需要说明的是,本发明实施例中编码字典中的每个码字由前缀编码、后缀编码两部分构成,其中前缀编码根据编码字典中的索引而获得。获取所有明文段的数量m,由于需对每个明文段进行编码,则最终得到的编码字典中的索引为0,1,2,…,m,共m+1个索引(其中1个索引用来表示空的前缀,m个索引用来表示不同的明文段),则最多有m+1 个不同的前缀编码,每个前缀编码都为相同长度的二进制数,因此每个前缀编码的长度为

在本发明实施例中,首先对第1个明文段进行编码,具体为:

将符号“#”填入编码字典中索引为0的行(即编码字典中第1行)中的明文段列以及码字列,用“#”来表示空的前缀。

根据获取明文段时“每段尽可能短且各段均不相同的原则”可知,第1个明文段仅包含了一个明文,此时该明文段的前缀为空,将该明文段包含的明文作为该明文段的后缀。编码字典中索引为0行表示空的前缀,因此将索引0对应的L位二进制数作为第1个明文段的前缀编码,将第1个明文段的后缀在加密字典中对应的后缀编码作为第1个明文段的后缀编码,将前缀编码与后缀编码拼接得到的结果作为第1个明文段的码字。将第1个明文段以及第一个明文段的码字填入到编码字典中索引为1的行中。

对其余明文段依次进行编码,需要说明的是,本发明实施例对其余明文段的编码方法相同,因此本发明实施例以第i个明文段为例,说明对其余明文段的编码方法,具体为:

1.对编码字典进行置乱,具体为:

当对第i个明文段进行编码时,编码字典中包含i行。

当i=2时,将第一密钥中的

当i大于2时,获取对第i-1个明文段进行编码时得到的混沌序列中最后一个元素,将该元素记为

将混沌序列中每个元素乘以i之后再向上取整,得到的结果构成的序列作为置乱位置序列。

获取编码字典每一行被引用的次数(即在编码过程中,每一行的明文段列的内容作为所有已编码的明文段的前缀的次数),用次数除以行数,作为每一行的频率。根据每一行的频率大小对每一行进行排序,当频率大小相同时,对频率相同的行按照每一行在编码字典中的顺序排序。获取排序结果中前

依次将待置乱行序列中每个待置乱行的内容放置在编码字典中,具体为:

将第j个待置乱行的置乱位置记为

在对所有待置乱行进行置乱之后,将非待置乱行序列中每个非待置乱行的内容依次放置在编码字典中内容为空的行中。需要说明的是,置乱只改变每行的明文段以及码字,不对每行的索引进行置乱。

需要说明的是,本发明实施例通过在每次对明文段进行编码之前,对编码字典中已有的内容进行置乱,打破了编码字典中原有的顺序规律,使得后续对当前的明文段进行编码的结果更加混乱,进一步使得最终的加密结果更加复杂,确保了医疗数据传输过程中的安全性。由于数据内部具有相似性,如图像具有局部相似性,文本数据中部分文本的重复率高,使得明文序列中明文具有一定规律,出现次数较多的明文,在之后出现的概率越大,本发明实施例根据该规律结合编码字典中每行的内容被引用的次数获取待置乱行,确保了引用次数多的行的位置变化,使得此些行的索引变化,进一步使得此些行后续被引用时,根据此些行得到的前缀编码也发生变化,如此破坏了最终加密结果中的统计规律。同时通过编码字典中每行的内容被引用的次数获取待置乱行进行置乱,相对于将编码字典中所有行作为待置乱行进行置乱,减少了Logistic混沌映射模型迭代的次数以及置乱的次数,使得加密压缩过程更加高效。而在对待置乱行进行置乱的过程中,待置乱行置乱之后可能占用了非待置乱行在编码字典中原本的位置,也使得非待置乱行的位置被改变,从而确保了置乱效果。

至此,完成了编码字典的置乱。

2.根据置乱之后的编码字典获取第i个明文段的码字,具体为:

当第i个明文段仅包含单个明文时,获取编码字典中空的前缀对应的索引,将该索引对应的L位二进制数作为第i个明文段的前缀编码。将第i个明文段包含的明文作为第i个明文段的后缀,将第i个明文段的后缀在加密字典中对应的后缀编码作为第i个明文段的后缀编码,将前缀编码与后缀编码拼接得到的结果作为第i个明文段的码字;

当第i个明文段包含两个或两个以上的明文时,将第i个明文段中最后一个明文作为第i个明文段的后缀,将第i个明文段中其余明文构成的明文段作为第i个明文段的前缀。获取编码字典中第i个明文段的前缀对应的索引,将该索引对应的L位二进制数作为第i个明文段的前缀编码。将第i个明文段的后缀在加密字典中对应的后缀编码作为第i个明文段的后缀编码,将前缀编码与后缀编码拼接得到的结果作为第i个明文段的码字。

3.将第i个明文段以及第i个明文段的码字填入到编码字典中索引为i的行中。

至此,实现了对第i个明文段的编码。

将所有明文段的码字按照明文段的顺序拼接在一起,作为密文数据。密文数据即为对明文数据进行加密压缩的结果。

至此,获取了密文数据。本发明实施例以第一密钥(3.75,0.04,30)以及表1中的加密字典对明文数据1,(1,2),4,(1,2,3)进行加密的过程如下:

明文段的数量为4,则前缀编码的长度为

首先对明文段1进行编码:明文段1的前缀为空,用#表示,则前缀编码为000,明文段1的后缀为1,后缀1在加密字典中对应的后缀编码为11000110,则明文段1的码字为00011000110。将明文段1以及明文段的码字填入编码字典,此时编码字典表如表2所示。

对明文段(1,2)进行编码:编码字典包含2行,混沌参数为第一密钥中的(3.75,0.04),将混沌参数输入到Logistic混沌映射模型中,将Logistic混沌映射模型迭代

对明文段4进行编码:编码字典包含3行,混沌参数为(3,75,0.6419134631206929),则混沌序列为{0.8619771336940941},置乱位置序列为

对明文段(1,2,3)进行编码:编码字典包含4行,混沌参数为(3,75,0.8619771336940941),则混沌序列为{0.4461470800597796,0.9266244863021708},置乱位置序列为{2,4}。编码字典中第1行为第1个待置乱行,置乱位置为2。编码字典中第2行为第2个待置乱行,置乱位置为4。编码字典中其余行为非待置乱行。根据待置乱行的置乱位置以及非待置乱行对编码字典进行置乱。明文段(1,2,3)的前缀为(1,2),前缀(1,2)在编码字典中的索引为0,则前缀编码为000,明文段(1,2,3)的后缀为3,后缀3在加密字典中对应的后缀编码为10111001,则明文段(1,2,3)的码字为00010111001。将明文段(1,2,3)以及明文段的码字填入编码字典,此时的编码字典表如表5所示。

明文数据1,(1,2),4,(1,2,3)对应的密文数据为00011000110000011011000001110110100010111001。

需要说明的是,明文段1、4与(1,2)、(1,2,3)的前缀都不相同,但前缀编码相同,攻击者无法根据前缀编码猜测出明文段的前缀,同时由于明文段的后缀与后缀编码的对应关系保密,攻击者也无法根据后缀猜测出明文段的后缀,因此最终得到的加密结果复杂,可抗统计分析攻击。

信息传输模块S105,对密文数据进行传输。

边缘节点将密文数据传输至云端,同时将信息预处理模块获得的特征二进制的长度S、第一长度n以及信息加密模块获得的明文段的数量m作为补充信息,将补充信息一同传输至云端。

至此,完成了密文数据的传输。

云平台处理模块S106,对密文数据进行解密,根据边缘节点提取的特征对医疗数据进行辅助分析。

云端接收到密文数据以及补充信息之后,根据补充信息对密文数据进行解密,具体为:

云端利用密钥获取模块中的方法获取加密字典以及第一密钥。

根据补充信息中明文段的数量m将密文数据划分为长度相等的m个二进制串,将每个二进制串作为一个码字,所有码字构成码字序列,将每个码字的长度用t表示。

构建一个空的编码字典,编码字典第一列为索引列,记录每行的索引,编码字典第二列为明文段,记录每行编码的内容,编码字典的第三列为码字,记录每行编码的结果。

依次对码字序列中每个码字进行解密,本发明以第i个码字为例,说明对每个码字进行解密的方法,具体为:

获取第i个码字的前t-k个比特位,作为码字的前缀编码,获取第i个码字的后k个比特位,作为码字的后缀编码。

当i=1时,将第i个码字的后缀编码在加密字典中对应的明文作为第i个码字的解密结果,即第i个码字对应的明文段。将第i个码字以及对应的明文段填入到编码字典中索引为i的行中。

当i>1时,利用信息加密模块中的方法对编码字典进行置乱。将第i个码字的前缀编码转换为十进制数,记为

至此,完成了第i个码字的解密。

通过对每个码字进行解密,根据码字序列中码字的顺序将每个码字对应的明文段拼接在一起,得到的结果记为明文序列,明文序列即为对所有码字进行解密的结果。

将明文序列中每个十进制数转换为k位二进制数,根据补充信息中的第一长度n,将明文序列中最后一个十进制数转换得到的k位二进制数的前k-n个比特位删除。将最终得到的所有的二进制数按照顺序拼接在一起得到一个二进制串。根据补充信息中的特征二进制的长度S,将二进制串分为两部分,一部分为二进制串的后S个比特位构成的二进制数,作为特征二进制;另一部分为二进制串的其余比特位构成的二进制数,将其作为医疗二进制。

利用信息预处理模块中的编码方法对医疗二进制、特征二进制进行解码,得到医疗数据以及医疗数据中的特征。

至此,完成了密文数据的解密,获取了医疗数据以及医疗数据中的特征。

云端根据医疗数据以及医疗数据中的特征对患者进行分类标记,并生成患者的指标异常报告,辅助医生对患者进行诊疗。

至此,完成了医疗数据的辅助分析。

综上所述,本发明的系统包括信息采集模块、信息预处理模块、密钥获取模块、信息加密模块、信息传输模块、云平台处理模块,本发明可对医疗数据进行加密的同时实现医疗数据的压缩,因此本发明中的方法相对于现有的方法效率更高;本发明中的加密字典存在非常多种可能性,因此密钥空间大,可抗暴力破解攻击;本发明通过加密字典获取明文段的后缀编码,使得攻击者无法根据后缀编码猜测出对应的前缀,确保了密文数据的安全性;本发明通过在每次对明文段进行编码之前,对编码字典中已有的内容进行置乱,打破了编码字典中原有的顺序规律,使得明文段的前缀编码无规律性,进一步使得最终的加密结果更加复杂无规律,可抵抗统计分析攻击;本发明结合编码字典中每一行的频率来获取待置乱行,减少了获取置乱位置序列时混沌映射模型迭代的次数以及对编码字典中的行的置乱次数,使得加密压缩过程更加高效,同时确保了置乱效果,使得医疗数据的传输更加高效、更加安全。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 基于端边云协同的智慧隧道大数据决策集控平台及方法
  • 一种基于区块链的远程互联网大数据智慧医疗系统
技术分类

06120115759416