首页> 中国专利> 一种医学科研数据关键变量的加密方法及系统

一种医学科研数据关键变量的加密方法及系统

摘要

本发明涉及一种医学科研数据关键变量的加密方法及系统,其包括:读取数据行,获取数据行中的所有变量;基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。本发明能解决医学科研数据隐私数据的安全保密需求,同时保留密文的特征,支持将密文纳入研究作为分类区分。本发明可以在医学数据处理技术领域中应用。

著录项

  • 公开/公告号CN114896613A

    专利类型发明专利

  • 公开/公告日2022-08-12

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN202210532084.8

  • 发明设计人 余灿清;杨旭;吕筠;劳圣雄;

    申请日2022-05-09

  • 分类号G06F21/60(2013.01);G16H10/60(2018.01);

  • 代理机构北京纪凯知识产权代理有限公司 11245;

  • 代理人孙楠

  • 地址 100871 北京市海淀区颐和园路5号

  • 入库时间 2023-06-19 16:22:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-30

    实质审查的生效 IPC(主分类):G06F21/60 专利申请号:2022105320848 申请日:20220509

    实质审查的生效

说明书

技术领域

本发明涉及一种医学数据处理技术领域,特别是关于一种医学科研数据关键变量的加密方法及系统。

背景技术

医学科研数据收集聚焦于与人类疾病或健康相关问题的信息,其数据量较大,覆盖内容极其广泛,既包括个人基本信息、日常行为生活方式、体格检查和各种检测结果。因此,关键和隐私信息的保密是医学科研的使用中最为关键的伦理问题。

目前,处理这些关键信息最为简单和常规的方法是直接删除这些关键变量,不用于分析和利用,然而这种简单粗暴的方法也存在缺陷。医学科研数据的利用通常需要多次反复利用,或者通过这些关键量链接到更多的数据。因此,传统方法无法满足上述要求。

发明内容

针对上述问题,本发明的目的是提供一种医学科研数据关键变量的加密方法及系统,其能解决医学科研数据隐私数据的安全保密需求,同时保留密文的特征,支持将密文纳入研究作为分类区分。

为实现上述目的,本发明采取以下技术方案:一种医学科研数据关键变量的加密方法,其包括:读取数据行,获取数据行中的所有变量;基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

进一步,所述读取数据行中,数据的格式为csv、txt、dta、sas7bdat。

进一步,所述基于固定容器随机选择数据行,包括:

在数据加密开始后先读取一部分数据到基于内存的固定大小的容器中,直至写满容器;

在每读到新的一行数据前,先从当前的容器随机取一行数据输出到目标文件,再将读取到的数据存入容器;写到目标文件中的每一行数据都是从容器中随机选取的。

进一步,所述对选取的变量采用多线程并发进行加解密中,需设置密钥,所述密钥的生成方法包括:

将用户输入的申请编号与本地操作系统生成的盐进行混合,生成第一中间文本;

对所述第一中间文本进行Base64编码,生成第二中间文本;

将所述第二中间文本进行MD5散列得到第三中间文本,将所述第三中间文本进行HEX摘要处理,将字节数组转为16位得到参与加解密运算的密钥。

进一步,所述将用户输入的申请编号与本地操作系统生成的盐进行混合,包括:

在所述本地操作系统生成种子文件,该种子文件与操作系统用户进行绑定,所述种子文件的内容为所述申请编号转换过程中的所述盐。

进一步,所述加解密采用AES-192算法。

进一步,所述对选取的变量采用多线程并发进行加解密,包括:

开启两个线程,第一线程用于从数据行读取数据,第二线程用于将加密结果写入数据文件;

同时开启若干个第三线程进行并发加解密处理,若干所述第三线程并行地将输入数据行进行变量提取、对选定的变量进行加解密处理,处理后重新组装加密的变量和未加密的变量作为数据行,将组合后的数据行发送给用于写文件的所述第二线程,所述第二线程调用操作系统的追加写文件接口,即将处理完成后的数据行追加写入数据文件中。

一种医学科研数据关键变量的加密系统,其包括:数据读取模块,读取数据行,获取数据行中的所有变量;加解密模块,基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述方法中的任一方法。

一种计算设备,其包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行上述方法中的任一方法的指令。

本发明由于采取以上技术方案,其具有以下优点:

1、本发明具有快速,安全,方便的特点,能实现对变量进行加密、解密、打乱等操作,以解决医学科研数据隐私数据的安全保密需求,同时保留密文的特征,支持将密文纳入研究作为分类区分。

2、本发明针对医学科研数据的数据量庞大的特征,实现了快速、高效、内存占用小的加解密处理过程。

3、本发明对科研数据保密性和安全性提供保障,同时支持超大文件加解密操作,为对医学科研数据进行研究的科研人员提供便利。

附图说明

图1是本发明一实施例中医学科研数据关键变量的加密方法流程示意图;

图2是本发明一实施例中密钥的生成示意图;

图3是本发明一实施例中采用多线程并发进行加解密处理流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

为了更好的描述本发明的技术方案,对相关术语进行定义解释如下:

“明文”是指用户输入或指定的需要进行加密处理的文本。

“密钥”是指用户输入或指定的参与加密过程的密码文本。

“密文”是指经过加密处理后输出的文本。

“加密”是指将明文和密钥进行处理后得到密文的操作。

“解密”是指将密文和密钥进行处理后得到明文的操作。

“加解密”是加密与解密双向操作的简称。

在本发明的一个实施例中,提供一种医学科研数据关键变量的加密方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,加密或解密操作以基于密码学中的对称加密算法(Symmetric-Key Cryptography)为例进行说明,医学科研数据通常是结构化数据,对具有数据量大,变量多等特点的医学科研数据进行处理,如图1所示,该方法包括以下步骤:

1)读取数据行,获取数据行中的所有变量;

2)基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

使用时,对数据的处理过程基于对操作系统文件的顺序读取并处理的方式,加解密处理过程不涉及明文的上下文数据,因此支持并发操作提升处理效率。

上述步骤1)中,读取数据行中,数据的格式为csv、txt、dta、sas7bdat。对于csv、txt数据格式,数据通常是以可读文本的形式存在文件中,只需要在读取前配置好数据格式、数据分隔符等就可以顺利读取,此类数据的变量名一般都写在文件首行,因此通常只需要读取一行即可获取数据文件的所有变量;其他数据格式需要调用软件库读取。本发明实现了一个统一高效的数据读取接口,可以快速读取用户选择的不同格式的数据文件。用户选择数据文件后就可以选择对一个或多个变量进行加密或解密操作。

上述步骤2)中,基于固定容器随机选择数据行的方法包括以下步骤:

2.1.1)在数据加密开始后先读取一部分数据到基于内存的固定大小(必须能存两行数据以上)的容器中,直至写满容器;

2.1.2)在每读到新的一行数据前,先从当前的容器随机取一行数据输出到目标文件,再将读取到的数据存入容器;

将上述步骤2.1.1)、步骤2.1.2)反复操作,写到目标文件中的每一行数据都是从容器中随机选取的,因此必定能保证目标文件中的数据是已经被打乱的。

上述步骤2)中,对选取的变量采用多线程并发进行加解密中,需设置密钥。如图2所示,密钥的生成方法包括以下步骤:

2.2.1)将用户输入的申请编号与本地操作系统生成的盐进行混合,生成第一中间文本1;

2.2.2)对第一中间文本1进行Base64编码,生成第二中间文本2;

2.2.3)将第二中间文本2进行MD5散列得到第三中间文本3,将第三中间文本3进行HEX摘要处理,将字节数组转为16位得到参与加解密运算的密钥。

上述步骤2.2.1)中,为了防止因软件和申请编号泄露造成加密后数据被破解,将用户输入的申请编号与本地操作系统生成的盐进行混合,具体实现方法为:在本地操作系统生成种子文件,该种子文件与操作系统用户进行绑定,种子文件的内容为申请编号转换过程中的盐。在不同用户下软件对应生成不同的随机的盐,提高了加密数据的安全性。

上述步骤2.2.1)中,申请编号的长度与加解密方法中所需密钥的长度不同。例如,在本实施例中,加解密采用AES-192算法实现,此算法的加解密运算需要32位字节的密钥。而申请编号由用户进行输入,且用户的输一般不满足输入刚好为32位字节,如果采用多截少补的方式,用户输出的变化就不能完全反应到参与运算的密钥上。故本发明采用上述方法进行密钥设置,生成AES加解密算法的密钥。

上述步骤2)中,为实现处理大文件的能力和快速处理的效率,在数据文件读取过程中采用数据管道的架构,通过逐行数据处理的方式对数据进行加解密和写文件,这样不需要把所有数据读取到内存中再处理,因此处理过程中占用的内存低,使用时只要有数据源源不断输入,本发明就可以持续输出。另外因为数据的加解密过程需要消耗CPU资源,也有一定耗时,故本发明采用多线程的处理方式。

其中,如图3所示,对选取的变量采用多线程并发进行加解密的方法包括以下步骤:

2.3.1)开启两个线程,第一线程用于从数据行读取数据,第二线程用于将加密结果写入数据文件;

2.3.2)由于数据的加解密相对比较耗时,同时开启若干个第三线程进行并发加解密处理(依系统硬件配置情况而定,默认为CPU支持的核心数的两倍),以提高处理数据的速度;若干第三线程并行地将输入数据行进行变量提取、对选定的变量进行加解密处理,处理后重新组装加密的变量和未加密的变量作为数据行,将组合后的数据行发送给用于写文件的第二线程,第二线程调用操作系统的追加写文件接口,即将处理完成后的数据行追加写入数据文件中。

综上,本发明通过数据管道实现加解密处理,对用户提供单行数据加解密的计算,让用户方便的进行简单数据加解密操作。基于数据管道逐行处理加解密数据的架构,本发明还实现了对输出数据进行打乱的功能,采用多线程并发进行加解密的方式,由于多线程运行的不确定性,输出数据行的顺序就会被随机打乱,并结合基于固定容器随机选择数据行的办法,实现对数据打乱。本发明能对医学科研数据保密性和安全性提供保障,同时支持超大文件加解密操作,为对医学科研数据进行研究的科研人员提供便利。

本发明还具有以下优点:1、支持用户输入一个方便用户记忆的申请编号,参与数据加解密运算,实现申请编号和数据密文的绑定,且申请编号参与加解密运算时会进行加盐、散列等安全操作。2、本地操作系统生成一个种子文件,与本机操作系统形成绑定,即使软件泄露也无法使用软件对数据进行解密,提高了安全性。3、用户可以选择一个或多个变量,只对选择的变量进行加解密操作。4、提供简单加解密计算器功能,可以对数据和申请编号生成对应密文或校验密文,方便科研人员查看或加密单条数据。5、软件在进行加解密操作时开启多线程,将读文件,加解密操作,写文件异步化,充分利用操作系统多线程资源,因此可以实现高效处理巨量数据。6、在加解密过程中统计数据量,实现数据处理进度显示功能。7、通过设定小容器的形式实现数据的打乱,且只消耗参数级空间资源。

在本发明的一个实施例中,提供一种医学科研数据关键变量的加密系统,其包括:

数据读取模块,读取数据行,获取数据行中的所有变量;

加解密模块,基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

上述实施例中,在数据读取模块中,数据的格式为csv、txt、dta、sas7bdat。

上述实施例中,在加解密模块中,基于固定容器随机选择数据行包括:

容器模型,在数据加密开始后先读取一部分数据到基于内存的固定大小的容器中,直至写满容器;

选取模块,在每读到新的一行数据前,先从当前的容器随机取一行数据输出到目标文件,再将读取到的数据存入容器;写到目标文件中的每一行数据都是从容器中随机选取的。

上述实施例中,在加解密模块中,对选取的变量采用多线程并发进行加解密中,需设置密钥,密钥包括:

第一处理模块,将用户输入的申请编号与本地操作系统生成的盐进行混合,生成第一中间文本;

第二处理模块,对第一中间文本进行Base64编码,生成第二中间文本;

第三处理模块,将第二中间文本进行MD5散列得到第三中间文本,将第三中间文进行HEX摘要处理,将字节数组转为16位得到参与加解密运算的密钥。

上述实施例中,在第一处理模块中,将用户输入的申请编号与本地操作系统生成的盐进行混合,具体为:在本地操作系统生成种子文件,该种子文件与操作系统用户进行绑定,种子文件的内容为申请编号转换过程中的盐。

上述实施例中,加解密采用AES-192算法实现。

上述实施例中,在加解密模块中,对选取的变量采用多线程并发进行加解密还包括:

读写模块,开启两个线程,第一线程用于从数据行读取数据,第二线程用于将加密结果写入数据文件;

并行处理模块,同时开启若干个第三线程进行并发加解密处理,若干第三线程并行地将输入数据行进行变量提取、对选定的变量进行加解密处理,处理后重新组装加密的变量和未加密的变量作为数据行,将组合后的数据行发送给用于写文件的第二线程,第二线程调用操作系统的追加写文件接口,即将处理完成后的数据行追加写入数据文件中。

本实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。

本发明一实施例中提供的计算设备结构示意图,该计算设备可以是终端,其可以包括:处理器(processor)、通信接口(Communications Interface)、存储器(memory)、显示屏和输入装置。其中,处理器、通信接口、存储器通过通信总线完成相互间的通信。该处理器用于提供计算和控制能力。该存储器包括非易失性存储介质、内存储器,该非易失性存储介质存储有操作系统和计算机程序,该计算机程序被处理器执行时以实现一种加密方法;该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、管理商网络、NFC(近场通信)或其他技术实现。该显示屏可以是液晶显示屏或者电子墨水显示屏,该输入装置可以是显示屏上覆盖的触摸层,也可以是计算设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。处理器可以调用存储器中的逻辑指令,以执行如下方法:读取数据行,获取数据行中的所有变量;基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以理解,上述计算设备的结构,仅仅是与本申请方案相关的部分结构,并不构成对本申请方案所应用于其上的计算设备的限定,具体的计算设备可以包括更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在本发明的一个实施例中,提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:读取数据行,获取数据行中的所有变量;基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

在本发明的一个实施例中,提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述各实施例提供的方法,例如包括:读取数据行,获取数据行中的所有变量;基于固定容器随机选择数据行,进而选取待加解密的变量,对选取的变量采用多线程并发进行加解密。

上述实施例提供的一种计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号